我有一个不扩展Activity
的类(并且因为它扩展CursorAdapter
而不能)CursorAdapter
需要与它填充的片段进行通信,更具体地说,每个列表项都有一个按钮,每当点击该按钮时我需要它来刷新列表并执行此操作我需要调用getFragmentManager()
。
我的问题:因为我正在延长CursorAdapter
我无法调用getFragmentManager()
(必须从片段或活动中调用它。)
我尝试过的。 我想做的第一件事(它可能是正确的,我只是因为我缺乏java技能而破坏了实现)是创建一个扩展Activity的类,它将与我的游标适配器片段连接。代码:
public class FragManager extends Activity {
public FragManager() {
}
public void refreshList() {
QCListFragment fragmentB = (QCListFragment) getFragmentManager().findFragmentById(R.id.listFragment);
fragmentB.requeryList();
}
}
这是在我的游标适配器中调用的。代码:
FragManager fragment = new FragManager();
fragment.refreshList();
无论如何,我认为这是正确的思路但无法找到教程(也许是因为我不知道用什么词来搜索它)
任何帮助都会很精彩! 马立克
答案 0 :(得分:1)
我现在不知道你的代码结构,但如果你的任何类是嵌套的,你可以访问包含类,如下所示:
public class MyActivity extends Activity {
private MyAdapter adapter = new MyAdapter();
public class MyAdapter extends CursorAdapter {
public MyAdapter() {
FragmentManager fm = MyActivity.this.getFragmentManager();
}
}
}
如果未使用嵌套,则可以将类的实例直接传递给需要访问它的类。
public class MyActivity extends Activity {
private MyAdapter adapter = new MyAdapter(this);
}
public class MyAdapter extends CursorAdapter {
public MyAdapter(Activity activity, Cursor c, int flags) {
super(activity, c, flags);
FragmentManager fm = activity.getFragmentManager();
}
}
答案 1 :(得分:0)
您想从requeryList()
?
Activity
首先,我Activity
应该延长FragmentActivity
。
以下是在所有情况下调用该方法的方法:
((QCListFragment) getSupportFragmentManager().findFragmentById(R.id.listFragment)).requeryList();
来自Fragment
的{{1}}的调用方法:
Fragment
来自((QCListFragment) getFragmentManager().findFragmentById(R.id.listFragment)).requeryList();
的{{1}}的调用方法:
FragmentActivity