尝试在适配器中添加片段

时间:2015-10-30 09:36:32

标签: android android-fragments

我尝试在扩展BaseAdapter的适配器内的按钮单击操作上添加片段。 但是要使用片段,类必须扩展Fragment才能使用FragmentManager。 我已导入:

import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;

但仍然面临错误:

FragmentManager fragmentManager=getFragmentManager();

我还尝试在获取FragmentManager时提供活动参考,它提供了更多错误。

非常感谢任何帮助。 提前谢谢。

这是我的适配器代码: 抽屉项目(视图)onclick动作:

view.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        if (position == 1)// Home
                        {


                        Home2Fragment fragment = new Home2Fragment();
                            FragmentManager fragmentManager=getFragmentManager();
                            FragmentTransaction fragmentTransaction = fragmentManager
                                    .beginTransaction();
                            fragmentTransaction.add(fragment, null);
                            fragmentTransaction.commit();

                        }

                    }
                });

2 个答案:

答案 0 :(得分:2)

因为从支持库导入片段,所以使用getSupportFragmentManager方法获取FragmentManager

FragmentManager fragmentManager=<Activity_Context>.getSupportFragmentManager();

需要使用FragmentActivity上下文来访问FragmentManager,并确保扩展FragmentActivity而不是Activity

答案 1 :(得分:0)

使用let Adapters作为使用它们的List的内部类被认为是一种好习惯。这使得适配器可以使用它们完全访问类,如果它是片段,则可以使用片段管理器。