我正在使用 android ( FragmentTabs.java ) 上的教程设计一个操作栏选项卡界面,当我尝试跟踪我切换到在选项卡中显示的片段时遇到问题。(我通过按钮切换选项卡并使用布局文件中的 onClick 在主活动中查找方法)
在 TabListener 中的这部分代码中,片段被更新:
mFragment = mActivity.getFragmentManager().findFragmentByTag(mTag);
其参数传递给:
bar.addTab(bar.newTab()
.setText("MMC/Data Commands")
.setTabListener(new TabListener<MMCFragment>(
this, "MMCFragment", MMCFragment.class)));
所以,当用户按下选项卡内创建的视图上的按钮时,我会尝试更新“mFragment”。如果我在用户切换选项卡时不更新它:
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
if (mFragment != null) {
ft.detach(mFragment);
}
}
它分离 mFragment,这是在创建选项卡时传递给它的原始片段,即带有标签“MMCFragment”的片段,当视图切换到不同的片段时,这是一个问题。所以我在 TabListener 中做了一个方法:
public void updateMfrag(String tag){
mFragment = mActivity.getFragmentManager().findFragmentByTag(tag);
}
但是当我从方法外部调用它时出现错误,因为我对非静态方法进行了静态引用。我怎样才能解决这个问题?还是有更好的方法在选项卡中导航视图?