0

我有一个带有 a 的 Android 应用程序,MainActivity我这样做是为了在以下位置创建导航选项卡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 设备)

我怎么解决这个问题?有任何想法吗?

4

1 回答 1

1

从片段中,调用宿主活动的方法,告诉它按钮单击事件。然后该活动可以做任何适当的事情。

就个人而言,我认为在绝大多数情况下完全替换选项卡的内容是不合适的,但当然欢迎您这样做。

于 2013-02-17T15:41:22.097 回答