如何在实例化Fragment类时解决以下问题
holder.infoView.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Fragment infoFragment = new ExampleFragment();
infoFragment.show(context.getSupportFragmentManager(), "settings");
....
此代码所属的实际类(MySimpleArrayAdapter) - 不扩展FragmentActivity - 但采用上下文(通过构造函数) )来自另一个扩展该类的类。
所有相同的我都不能使用
这样的上下文 infoFragment.show(context.getSupportFragmentManager(), "settings");
我收到错误:方法getSupportFragmentManager()未定义为Context类型。
这个问题有一个简单的解决方案吗?
答案 0 :(得分:4)
您有两种选择:
getSupportFragmentManager()
,将其另存为变量并将其作为第二个构造函数参数传递给您的适配器。((FragmentActivity) context).getSupportFragmentManager()
。我希望有所帮助!
答案 1 :(得分:0)
我相信这个方法只为Activity类定义。此外,如果您决定将Activity实例传递给适配器,那不是一个好主意。考虑使用具有Observer模式的接口在Adapter和Activity之间进行通信。