【问题标题】:How to call fragment from an adapter? getting error at getFragmentManager如何从适配器调用片段?在 getFragmentManager 处出错
【发布时间】:2018-11-11 17:58:09
【问题描述】:

我尝试从适配器调用片段,但在getFtragmentManager 处出现错误

适配器类

holder.track_order.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            TrackOrderFragment fragment2 = new TrackOrderFragment();
            FragmentManager fragmentManager = getFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.main_frame, fragment2);
            fragmentTransaction.commit();
        }
    });

错误:无法解析方法“getFragmentManager()”

【问题讨论】:

  • 你试过this吗?
  • getFragmentManager() 是某个类的方法,绝对不是任何 Adapter 类的方法。那么你需要调用什么类的虚方法呢?它的对象
  • @ADM 你能举个例子吗?

标签: android


【解决方案1】:

holder.track_order.setOnClickListener 在您的片段类中吗? 如果不将片段的引用传递给您正在调用它的类并像这样调用它:

fragment.getActivity(). getFragmentManager();

【讨论】:

  • holder.track_order.setOnClickListener 来自适配器类
  • getFragmentManager() 是Fragment 类的一个方法,没有适配器中fragment 的引用是不能调用的。
  • 你是对的,但我遇到了一个你无法解决的错误...你能给我看一个如何从适配器类调用的例子吗?
  • 在适配器中传递片段的引用,例如:Adapter adapter = new Adapter(Fragment fragment);
【解决方案2】:

它说您“无法解析方法 'getFragmentManager()”,因为 Java 看不到您的方法。 如果它根本不存在,则需要创建此 getFragmentManager()。

【讨论】:

  • 什么意思创建getFragmentManager()这是预定义类的方法
  • 没有。 getFragmentManager()Activity 的内置方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-09
  • 1970-01-01
  • 1970-01-01
  • 2018-02-19
  • 2020-06-13
  • 1970-01-01
相关资源
最近更新 更多