由于我是 Android 新手,我现在正在思考什么是正确的做事方式。
目前,我正在编写的应用程序有 4 个不同的屏幕:
- 屏幕 1 - 节点列表(主屏幕)
- 屏幕 2 - 选项菜单、带按钮的表格布局
- 屏幕 3 - 导航
- 屏幕 4 - 有关版本等的文本详细信息
可以使用位于顶部的“标题”视图来导航这些屏幕。标题有 4 个不同的按钮:
+--------------------+
| menu with buttons |
+--------------------+
| |
| |
| |
| C O N T E N T |
| |
| |
| |
+--------------------+
main.xml实际上只是一个 LinearLayout,它包含 header.xml 和内容,在这种情况下是 ListView 中的节点列表
选项.xml几乎是同一件事,它包括 headerxml,然后是一堆按钮......
...其他两个屏幕依此类推。
因此,当我按下顶部标题/菜单中的按钮之一时,内容应该切换到该屏幕。我的问题是:
你可能应该使用一个单独的Activity
对于每个屏幕;否则你需要最终跟踪哪个人View
当前正在显示的状态,以及当用户切换到另一个窗口或有呼叫打入等时当前未显示的所有状态。
如果您只使用单独的组件,则可以更轻松地跟踪此状态Activity
对于每一项功能。
如果您决定将所有内容都保存在一个中Activity
但是,你可以看看TabActivity班级。然而,也有一些警告会阻止您Activity
作为选项卡内容。
- Android:为什么我不应该在选项卡内使用活动?
关于您的后续行动,遗憾的是您无法附上Intent
直接到一个Button
就像你可以用MenuItem
通过 XML,但是你可以扩展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();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)