pat*_*ick 2 android menu back-button android-preferences
我修改了CommonsWare的prefenceActivity应用程序但遇到了问题.
我想用菜单按钮启动prefenceActivity,然后用后退按钮完成它.
我有这个通过菜单按钮启动我的prefenceActivity:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
startActivity(new Intent(this, EditPreferences.class));
return(true);
}
Run Code Online (Sandbox Code Playgroud)
它确实会回到我对应用程序的主视图,但我认为它还没有完成,因为当我再次按下菜单按钮时,prefenceActivity不会弹出agian.我必须关闭我的应用程序,它只能再次使用一次.
当我按下后退按钮时,我已经尝试在我的prefenceActivity中完成它,但这也无济于事.
我做错了什么?
谢谢你的帮助!
hac*_*bod 14
如果您只想在按下菜单按钮时执行某些操作,则只需实现onKeyDown()/ onKeyUp()即可像处理任何其他键一样处理菜单键.确保返回true表示您正在使用它,因此不执行默认键处理(通常涉及显示菜单面板).
不要通过实现onCreateOptionsMenu()或onPrepareOptionsMenu()来实现.这些是您实现与选项菜单交互的钩子,而不是菜单键.无法保证在按下菜单键的任何关系中都会调用它们.它经常发生,但是API中没有任何定义说这是如此,事实上并非如此.
作为一般规则,依赖于这样的副作用(当用户按下菜单键时,这个未被记录为直接绑定到菜单键的API被调用)是你绝对应该避免的.根据定义,您依赖于实现细节,这很可能会让您感到困惑.
例如,当有动作栏时,在Android 3.0中,当创建活动时立即调用onCreateOptionsMenu(),并且每当需要更新操作栏中的动作时调用onPrepareOptionsMenu().这是因为选项菜单现在与操作栏集成在一起.
| 归档时间: |
|
| 查看次数: |
6178 次 |
| 最近记录: |