我有一个MainActivity
的Android应用程序,我这样做是为了在onCreate
中创建导航标签:
ActionBar myActionBar = getActionBar();
myActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
Tab tab = myActionBar.newTab().setText("FirstTab").setIcon(R.drawable.first_tab)
.setTabListener(new TabListener<FirstTabFragment>(this, "FirstTab",
FirstTabFragment.class));
... more tabs ...
TabListener
,我在developer.android.com上使用它:
http://developer.android.com/reference/android/app/ActionBar.html#newTab():
public static class TabListener<T extends Fragment> implements ActionBar.TabListener {
...
public TabListener(Activity activity, String tag, Class<T> clz) { ... }
}
因此,如果用户点击了第一个标签页,我的片段FirstTabFragment
就会被调用并执行onCreateView
。
我的问题是,如果用户现在点击按钮,我会执行以下操作,但我不知道如何切换到下一个片段:
private OnClickListener firstTabListener = new OnClickListener() {
@Override
public void onClick(View v) {
if (v == button1) {
Intent intent = new Intent(???, MyDetailsFragment.class);
startActivity(intent);
} else if (...) {
...
}
}
};
MyDetailsFragment
应显示所选项目的详细信息(按钮单击),因此我想深入查看详细信息片段,并希望为新片段提供一些额外数据,因此详细信息片段知道哪些详细信息它应该显示哪个选定的项目。
选定的选项卡不应更改,后退按钮应返回FirstTabFragment页面。
我想我应该开始一个新片段,但这是不可能的,方法startActivity
的名称告诉我,我开始一个新活动,而不是一个片段。所以,我必须使用MainActivity
并将新片段放入其中?
(我不使用android-support-v4.jar库,因为我只针对Android 4设备)
我该如何解决这个问题?有什么想法吗?
答案 0 :(得分:1)
从片段中,调用托管活动上的方法,告诉它有关按钮单击事件的信息。然后,活动可以做任何适当的事情。
就我个人而言,我认为在绝大多数情况下完全取代选项卡的内容是不合适的,但我们当然欢迎你这样做。