【问题标题】:Using the fragment manager使用片段管理器
【发布时间】:2019-04-16 17:22:20
【问题描述】:

我正在尝试为应用设置登录系统,我一直在关注this video series。基本上我了解正在发生的事情的一般概念,但不了解他为什么有时会做他正在做的事情。无论如何,我在说

的行中遇到了一些错误
final FragmentManager fm = getActivity().getSupportFragmentManager();
fm.beginTransaction().replace(R.id.content, new LoginFragment()).commit();

错误说

无法解析方法“getActivity()”

在第一行,尽管我在文档中看到过,并且

第二个参数类型错误。找到:'your.project.structure.LoginFragment',需要:'android.support.v4.app.Fragment'

在我有new LoginFragment()的第二行

经过数小时的谷歌搜索、尝试和阅读文档后,我仍然不知道自己在做什么,最终陷入了困境。我也不知道我是否提供了足够的信息,所以请走开,我会尽力准确回应。

【问题讨论】:

  • 确保您的课程扩展到Fragment

标签: android android-fragments fragmentmanager


【解决方案1】:

您的 LoginFragment 不会覆盖 Fragment 类。这是第二个错误的问题。

对于第一个,您在Activity 中发布的代码是什么?还是在Fragment 中?

【讨论】:

  • 我不确定如何让LoginFragment 类覆盖Fragment 类。我之前重写了方法,但不是整个类(LoginFragment 确实扩展了FragmentActivity 顺便说一句,如果这很重要的话)。目前它位于Fragment。我确实有这个项目的一个分支,其中一切都是活动,我得到了同样的错误(除了new LoginFragment() 错误,它给出了与getActivity() 相同的无法解决的消息)。
  • 如果它扩展了FragmentActivity,它就不是Fragment,而是Activity。将实现更改为Fragment。如果代码在Activity 中,则不必像在Activity 中那样调用getActivity(),只需将其删除或使用this.
【解决方案2】:
  • LoginFragment() 扩展 Fragment.
  • 如果代码在Activity 中,请使用this.getSupportFragmentManager()。如果在 Fragment 中,请使用 getFragmentManager()

【讨论】:

  • 我尝试按照@Luca Nicoletti 的建议这样做,但它说getSupportFragmentManager() 无法解决。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-01
  • 2010-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多