我尝试在扩展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();
}
}
});
答案 0 :(得分:2)
因为从支持库导入片段,所以使用getSupportFragmentManager
方法获取FragmentManager
:
FragmentManager fragmentManager=<Activity_Context>.getSupportFragmentManager();
需要使用FragmentActivity
上下文来访问FragmentManager
,并确保扩展FragmentActivity
而不是Activity
。
答案 1 :(得分:0)
使用let Adapters作为使用它们的List的内部类被认为是一种好习惯。这使得适配器可以使用它们完全访问类,如果它是片段,则可以使用片段管理器。