Android 是创建新活动更好,还是创建不同的布局并替换现有布局更好?

Android 是创建新活动更好,还是创建不同的布局并替换现有布局更好?,android,Android,由于我是Android新手,我现在正在思考什么是正确的做事方式 目前,我正在编写的应用程序有4个不同的屏幕: 屏幕1-节点列表(主屏幕) 屏幕2-选项菜单,带按钮的表格布局 屏幕3-导航 屏幕4-版本等的文本详细信息 可以使用位于顶部的“标题”视图来导航这些屏幕。然后,标题有4个不同的按钮: +--------------------+ | menu with buttons | +--------------------+ | | |

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

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

  • 屏幕1-节点列表(主屏幕)
  • 屏幕2-选项菜单,带按钮的表格布局
  • 屏幕3-导航
  • 屏幕4-版本等的文本详细信息
可以使用位于顶部的“标题”视图来导航这些屏幕。然后,标题有4个不同的按钮:

+--------------------+
| menu with buttons  |
+--------------------+
|                    |
|                    |
|                    |
|  C O N T E N T     |
|                    |
|                    |
|                    |
+--------------------+
xml实际上只是一个线性布局,包括header.xml和内容,在这种情况下是ListView中的节点列表

xml几乎是一样的,它包括headerxml和一堆按钮

…以及其他两个屏幕

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

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

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


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

如果只对每项功能使用单独的
活动
,则更容易跟踪此状态

但是,如果您决定将所有内容都保存在一个
活动中,您可以查看该类。但是,也有一些注意事项阻止您将
活动
作为选项卡内容


关于后续操作,很遗憾,您不能像通过XML使用
MenuItem
那样将
Intent
直接附加到
按钮
,但是您可以扩展
活动
,用一些连接侦听器的代码创建自己的公共基类

比如:

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();
    }
}

我对Android也很陌生,但我的建议是创建4种不同的活动。这样做的原因是,在我看来,它似乎是一个“更干净”的实现。当然,还有更多的代码需要编写,但我宁愿有更多的小班,而不是一个包含大量代码的大班。

不确定是否在任何子问题中提到过这一点,但如果更改2.0之前的活动,则无法在它们之间设置动画


因此,如果您有一个加载屏幕,并且希望它淡入菜单,则必须使用两个视图并在这两个视图之间切换。

作为后续问题:header.xml中定义的标题有4个按钮。我在哪里附加这些的单击侦听器?我没有header.xml的特定活动。我要那个吗?或者我应该在Main.java活动中附加侦听器吗?Thx,您对我上面的后续问题有何评论?标题是否应该有其on活动,我可以像查看一样打开它吗?我更新了我的答案。活动不能包括其他活动。但活动的布局可以包括其他布局。您只需使用
标记.Thx将header.xml包含在每个活动的布局xml中,作为后续答案。我会看看它=)我没有让它工作,我想我需要更多的帮助,所以我在这里发布了一个新问题,),并引用了这个帖子。如果你对我上面的后续问题有什么好说的,我会很感激的