Android:让用户访问首选项活动的最佳方式?

时间:2012-07-28 16:42:54

标签: android mobile

我有一个正在制作的应用,并有一个偏好设置活动,允许用户选择该应用的设置。

我需要帮助的是选择用户如何访问偏好活动。有些教程实际上在主要活动中有一个标记,例如"偏好"这将允许用户访问该活动。

其他人(我目前的方式)只依靠用户点击手机上的菜单按钮。我读到有些手机没有菜单按钮了,Android团队正试图摆脱物理导航按钮的要求。

所以我有点困惑,关于这个话题的一般共识是什么?谢谢。

编辑:这是我当前的菜单创建代码

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        menu.add(Menu.NONE, 0, 0, "Settings");
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case 0:
            startActivity(new Intent(this, Preferences.class));
            return true;
        }
        return false;
    }

4 个答案:

答案 0 :(得分:4)

使用“菜单按钮”方法。通常,在英语中,按钮应称为“设置”,而不是“首选项”,即使它管理首选项。傻,我知道。

关于没有菜单按钮的手机:

唯一不运行Android 4.0或更高版本的手机。只要您的项目中的目标Android 3.0或更高版本构建,并正确创建菜单项(如果您需要知道如何,我将提供一个片段),Android将检测到没有硬件菜单按钮并添加“溢出”菜单到Action Bar。

编辑:这是片段:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuItem buttonSettings = menu.add("Settings"); // This is a hardcoded string. When you get around to it, switch it to a localized String resource.
    buttonSettings.setIcon(R.drawable.ic_settings); // I have a custom icon for this. You can use the one in android.R.drawable, but I don't know its name right now.
    buttonSettings.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER); // This forces it to go in the overflow menu, which is preferred.
    buttonSettings.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {

        public boolean onMenuItemClick(MenuItem item) {
            Intent settingsIntent = new Intent(YourActivity.this, Preferences.class); // Change YourActivity to.. well, your activity. Change Preferences to the name of your Settings activity.
            YourActivity.this.startActivity(settingsIntent);
            return false; // I honestly don't know why this should return false, but every example I've seen has it do so. So I'd leave it in.
        }
    });
return true;
}

溢出菜单看起来像三个点,就像Action Bar的“more ...”选项一样。 Android设计指南说您应该始终将“设置”选项放在溢出菜单中。

希望清除它,其他任何东西,随意问。

答案 1 :(得分:1)

感谢大家的帮助,尤其是史蒂文,我学到了以下内容:

  • 对于Android 3.0及,访问我的偏好设施活动的有效方法是实施操作栏
  • 可以通过将主题更改为可在3.0+平台上使用的Theme.Holo来添加操作栏
  • 由于我手机上有2.2,我在清单文件中设置时没有找到Holo主题,这是因为我的构建目标是2.2
  • 我最初将minSdkVersion更改为11以使主题正常工作,但这意味着我无法在手机上测试它,并且没有任何一个版本低于3.0的Android就能够如果他们想要
  • ,请使用我的应用程序
  • 实际的方法是进入Project> Preferences> Android并将构建目标设置为最新版本的Android(这样,具有更高操作系统版本的手机可以受益于更新的主题相关更改,而旧版本保持不受影响)
  • 设置更高的构建目标时要注意的一件事是您使用的类的兼容性。某些类可能只适用于更高版本的Android,因此会导致您的应用在较低版本上崩溃。

答案 2 :(得分:0)

我建议你两个都做(这就是我做的)。您在屏幕上显示设置virtual button,单击该设置后,将弹出设置屏幕。您可以选择在单击physical button时弹出设置屏幕。

答案 3 :(得分:0)

一些比我自己更聪明(也更美观)的人在Android设计指南中讨论settings

我的通用UI设计原则是:

  1. 您应该在屏幕上访问您所做的所有事情 (内容区域或ActionBar操作)控件。
  2. 你应该每天做一次你应该访问的东西 菜单的顶级(或仅在主屏幕上的屏幕上)。
  3. 你很少做的事情(比如改变 用户首选项)可以像您一样深埋在菜单层次结构中 想。 : - )
  4. 在实践中,我通常希望设置处于来自主页Activity的第一个溢出级别。