使用虚拟按钮打开PreferenceActivity?

时间:2014-03-08 15:06:31

标签: android onkeydown

我对android developmpent很新,我正在试图弄清楚如何将用户带到我的PreferenceActivity。我已经创建了一个带有相应布局的Preferences类,但我无法弄清楚如何在没有物理菜单按钮的情况下将用户带到手机上。

我使用的是Nexus 4,它甚至没有物理菜单按钮。我已经看到菜单按钮(三个垂直点)现在然后弹出虚拟按钮(右下角),如何让该按钮显示在手机上并让用户设置onkeydown?

1 个答案:

答案 0 :(得分:1)

  

我看到菜单按钮(三个垂直点)现在然后弹出虚拟按钮(右下角)

您看到的是“遗留菜单按钮”:

http://1.bp.blogspot.com/-u-3KNfy5n9M/TyG235X2rGI/AAAAAAAABHM/g_qGEXBdJW8/s400/image00.png

在您的应用中仍然有这种做法是不好的做法。当您在Android Manifest中将targetSdkVersion设置为API 11或更高版本时,它应该会被删除。然后它应该转移到ActionBar。这应该是这样的:

http://1.bp.blogspot.com/-KIyVJ4DBLdw/TyGbNsLn4hI/AAAAAAAABFs/xgLPIAaEP6I/s400/image01.png

查看右上角的溢出菜单。

如果您想了解更多相关信息,请阅读this


如果您想通过点击这些菜单填充的列表中的项目来启动PreferenceActivity,您必须创建一个菜单。

覆盖onCreateOptionsMenu

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    final MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.my_menu, menu);
    return super.onCreateOptionsMenu(menu);
}

my_menu.xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/settings"
        android:title="Settings"
        android:showAsAction="never"/>
</menu>

现在覆盖onOptionsItemSelected

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    switch(id) {
        case android.R.id.settings:
        // Start your Activity in here.
        break;
    }
    return super.onOptionsItemSelected(item);
}