什么是正确的选择?创建新活动或只创建不同的布局并替换现有布局?

Ted*_*Ted 3 android

由于我是Android新手,我现在正在思考正确的做事方式.

目前,我写的应用程序有4个不同的屏幕:

  • 屏幕1 - 节点列表(主屏幕)
  • 屏幕2 - 选项菜单,带有按钮的tableLayout
  • 屏幕3 - 导航
  • 屏幕4 - 版本等的文本详细信息

可以使用放置在顶部的"标题"视图来导航这些屏幕.然后标题有4个不同的按钮:

+--------------------+
| menu with buttons  |
+--------------------+
|                    |
|                    |
|                    |
|  C O N T E N T     |
|                    |
|                    |
|                    |
+--------------------+
Run Code Online (Sandbox Code Playgroud)

main.xml实际上只是一个包含header.xml然后是内容的LinearLayout,在这种情况下是ListView中的节点列表

options.xml几乎是一样的,它包括headerxml,然后是一堆按钮......

......等两个其他屏幕.

因此,当我按下顶部/菜单中的一个按钮时,内容应该切换到该屏幕.我的问题是:

  • 我应该为每个屏幕创建一个活动吗?我在谷歌上看到:
    一项活动为用户可以进行的一项重点工作提供了一个可视化的用户界面.
    因此,我可以解释为每个屏幕使用一个Activity.

  • 应该创建比启动更多的活动,然后当我想更改上面的"内容"时,只运行setContentView(R.layout.whatever)

问候

Chr*_*Orr 7

你可能应该Activity为每个屏幕使用一个单独的; 否则,您需要最终跟踪View当前正在显示的个人,以及当用户切换到另一个窗口或来电等时当前未显示的所有个人的状态.

如果您只Activity为每个功能使用单独的状态,则更容易跟踪此状态.

Activity但是,如果您决定将所有内容保留在一个单独的内容中,您可以查看该TabActivity课程.但是,还有一些警告会阻止您Activity使用标签内容.


关于你的后续工作,遗憾IntentButton是你不能通过MenuItemXML 直接附加一个类似的东西,但是你可以扩展Activity为使用一些代码连接监听器来创建你自己的公共基类.

就像是:

public class BaseActivity extends Activity {
    protected View.OnClickListener mButtonListener;

    protected void setupHeaderButtons() {
        findViewById(R.id.header_btn_1).setOnClickListener(mButtonListener);
        // ...
        findViewById(R.id.header_btn_n).setOnClickListener(mButtonListener);
    }
}

public class FirstActivity extends BaseActivity {
    @Override
    public void onCreate(Bundle b) {
        super.onCreate(b);
        setContentView(R.layout.first_activity);

        // This needs to be done *after* the View has been inflated
        setupHeaderButtons();
    }
}
Run Code Online (Sandbox Code Playgroud)