如何在同一视图中运行不同的活动

时间:2013-03-20 05:13:51

标签: android parent-child subactivity

我正在使用以下项目

https://github.com/akotoe/android-slide-out-menu.git开发幻灯片菜单应用程序。

如何通过单击幻灯片菜单中的列表在同一视图中运行不同的活动。

例如,如果我点击第1项,我想在一个单独的活动中解析一个XML文件,并将该活动作为子项添加到此父视图。因为在每个项目上单击我想解析一个单独的XML文件,我也想在一个单独的布局文件中表示解析数据。所以我需要一个活动来做这个,我希望将这个活动作为一个子项添加到这个父视图。

我怎么能这样做,任何人都可以帮助我做到这一点。

如果我开始一个新的Intent(startactivity),它会向我导航一个不同的页面。在哪里我看不到这个父页面。

3 个答案:

答案 0 :(得分:3)

可以嵌入活动内部的UI组件应该从Fragment而不是Activity派生。将子活动转换为片段时,您需要覆盖onCreateView而不是onCreate才能加载片段的布局。

在主活动的布局中,您可以直接插入最初要显示的片段,并为该片段提供ID。然后,您可以使用代码将具有该ID的片段替换为不同的片段。

这是一个开始的好地方:http://developer.android.com/guide/components/fragments.html

这对我来说太过大了,无法涵盖所有​​内容 - 你真的应该关注Android开发者资源 - 但这里有一些例子。

正如我所说,您可以将初始片段直接放入您的活动布局中。 “片段”位于布局编辑器的“布局”选项卡上。您可以为该片段占位符提供一个“Id”,您可以使用它来识别它以及将在那里开始的片段类的“名称”。

然后在切换片段时,您可以使用以下代码:

// Create new fragment and transaction
Fragment newFragment = new ExampleFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();

// Replace whatever is in the fragment_container view with this fragment
transaction.replace(R.id.fragment_container, newFragment);

// Commit the transaction
transaction.commit();

答案 1 :(得分:2)

您无法将活动嵌套在另一个活动中。 但你可以改用Fragment。 单击该项时,只需通过FragmentManager切换到右侧Fragment。

答案 2 :(得分:0)

先检查此答案

<强> How do I create a header or footer button bar for my Android application


您可以在项目中拥有一个Master活动,

说,MainActivity.java

在该主要活动中编写滑动菜单的代码

@Override
    public void onCreate(Bundle inState) {
        super.onCreate(inState);

        mMenuDrawer = new MenuDrawerManager(this, MenuDrawer.MENU_DRAG_CONTENT,
                MenuDrawer.MENU_POSITION_RIGHT);

        mMenuDrawer.setContentView(R.layout.appui);
        mMenuDrawer.setMenuView(R.layout.slide_menu_ui);

    }

在同一活动中,初始化菜单组件并为其编写监听器

现在,

来自extends

的所有其他活动MainActivity

你完成了。!!