我有一个MainActivity
包含两个片段的标签栏:MainFragment
和WishlistFragment
. 它们都扩展为ListFragment
。
当有人从选项菜单中触摸菜单项时,我希望显示的片段中的 ListView使用其名为的自定义适配器刷新其列表LazyAdapter adapter
。
所以在这里是我希望在我的MainActivity
代码中进行刷新的地方:
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_edit:
// find out which fragment is showing here
// refresh the fragment's listview here
// adapter.notifyDataSetChanged();
return true;
}
}
我怎样才能做到这一点?我不确定如何调用片段以及如何确定正在显示哪个片段。
以下是我设置标签的方式MainActivity
:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
actionBar.addTab(actionBar.newTab().setText("Main").setTabListener(this));
actionBar.addTab(actionBar.newTab().setText("Wishlist").setTabListener(this));
}
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
// When the given tab is selected, show the tab contents in the container
ListFragment newfragment = null;
switch (tab.getPosition() + 1)
{
case 1:
newfragment = new MainFragment();
break;
case 2:
newfragment = new WishlistFragment();
break;
}
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, newfragment)
.commit();
}