繁体   English   中英

Android活动,标签页,后退按钮

[英]Android Activities, Tabs, Back Button

我正在编写我的第一个Android应用程序。 它是iPhone应用程序的端口,其底部具有3个选项卡,分别称为A,B和C。选项卡A具有4个子活动(A1,A2,A3,A4),选项卡B具有3个子活动,选项卡C具有2个子活动儿童活动。

对于Android应用程序,我真的不想在底部显示iPhone样式标签栏。 实际上,我宁愿根本没有选项卡栏(因此我可以使用更多屏幕),而是使用菜单按钮在活动A,B和C之间进行切换。

我真的很难选择最好的方法来实现这一点,这也需要正确处理后退按钮。

我已经阅读了关于“活动”的Android开发人员说明,并尝试了此操作(使用意图标志禁用“向左滑动”效果),该方法可在A1,B1,C1之间进行切换,但是如果您已浏览A1,A2,则C1我不知道如何使“后退”按钮转到A2(转到A1)

我还阅读了有关使用Tabs的信息,并对此进行了测试。 但是,后退按钮未处理,仅退出应用程序。 我意识到我可以自己处理Stack并覆盖“后退”按钮,并且我需要使用ActivityGroups。 但是我没有找到任何有关如何处理ActivityGroup中的后退按钮的好例子,并且还读到如果该组中的Activity中的一个是ListActivity,则在处理后退按钮时存在一个错误,我也打算使用它。

任何帮助或指针将不胜感激,以帮助我入门。

这就是我使用菜单按钮的方式。 在您的主要活动中,请执行以下操作:

首先,制作一个新的android xml文件并将类型设置为menu(它是eclipse中的下拉菜单之一),然后menu.xml文件将自动放置在正确的位置。

打开布局,然后添加3项(要切换到的每一页一个)

    // Menu button pressed
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);
    return true;

}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.page1:
        startActivity(new Intent(this, page1Activity.class));
        break;
    case R.id.page2:
        startActivity(new Intent(this, page2Activity.class));
        break;
    case R.id.page3:
        startActivity(new Intent(this, page3Activity.class));
        break;
    }
    return true;

其中page1Activity和其余的是其他类。

确保在布局的ID部分中有@ + id / page1等,...

只要将这些活动添加到清单中,它就可以正常工作。 后退按钮可以很好地解决这个问题(尽管我还没有尝试过使用listview。使用listview时,您应该只需要一个finish();当您选择避免多个列表的内容时)

要切换子页面,请使用以下命令:

public void page1aPressed(View button) {
    Intent nextPage = new Intent();
    nextPage.setClassName("com.example",
            "com.example.page1a");
    startActivity(nextPage);

当您按回去时,它将转到上一个活动。 也许我在想这个错误,但是对我有用。

  1. 如果您使用TabHost,则很难处理,我不建议您这样做

  2. 如果您使用上下文菜单,则比正常调用每个活动(!不在活动组中)要多,应将活动放入活动堆栈,并使“返回”按钮的标准功能可用。

另外,您可以仅通过一个单独的菜单视图来模仿底部菜单,该视图包含在所有布局中,这可以避免TabHost的限制,但外观相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM