Android硬件菜单按钮代码无法正常工作!需要帮助

| 我喜欢这个网站,你们都很棒!但是这是我遇到的另一个问题: 在我的应用程序中,我有一个可在整个屏幕上显示网站的Web视图,我编写了代码以通过按下电话的菜单按钮来显示菜单,从菜单中我希望发生两件事。第一个菜单项返回主屏幕的应用程序,第二个菜单项退出应用程序或退出应用程序。 第一个问题: 按下菜单按钮后,它将显示菜单...如果再次按下它,它将显示两个选项两次,如果再次按下它,则两个项目都将显示3次,依此类推! 第二个问题: 选择两个选项中的任何一个之后,什么都没有发生! 这是我的代码,请告诉我我做错了! 谢谢 菜单xml:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<menu
  xmlns:android=\"http://schemas.android.com/apk/res/android\">
<item
android:id=\"@+id/menuToMenu\"
android:title=\"Menu Principal\"
/>
<item
android:id=\"@+id/menuToSalir\"
android:title=\"Salir\"
/>
</menu>
Backtomain.java
import android.app.Activity;
import android.os.Bundle;

public class Backtomain extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}
以及我叫菜单的地方:
public boolean onPrepareOptionsMenu (Menu menu){
        super.onCreateOptionsMenu(menu);
        MenuInflater mostrar = getMenuInflater();
        mostrar.inflate(R.menu.main_menu, menu);
        return true;
        }

    public boolean onOptionItemSelected(MenuItem item){
        switch (item.getItemId()){
        case R.id.menuToMenu:
            startActivity (new Intent(\"my.app.BACKTOMAIN\"));
            return true;
        case R.id.menuToSalir:
            finish();
            System.exit(0);
            return true;
        }
        return false;
    }
    
已邀请:
您是从
onPrepareOptionsMenu()
呼叫
super.onCreateOptionsMenu()
。并且,您将
onPrepareOptionsMenu()
中的相同选项扩展到菜单中。将
onPrepareOptionsMenu()
重命名为
onCreateOptionsMenu()
,它的性能可能会更好。 也: 如果您认为
my.app.BACKTOMAIN
活动正在运行,则可能要在
Intent
中添加
FLAG_ACTIVITY_REORDER_TO_FRONT
FLAG_ACTIVITY_CLEAR_TOP
。 摆脱
menuToSalir
菜单选项。编写良好的Android应用程序都不会调用
System.exit(0)
。用户可以通过按下HOME按钮离开您的应用程序,这与Web应用程序中的操作没有什么不同。     
要解决您的第一个问题,请尝试onCreateOptionsMenu(),而不是onPrepareOptionsMenu()。 我对如何解决第二个问题并不满意,我通常在Java中创建菜单,而不是像您一样使用xml。     
我发现它起作用了!我在...时错过了“ s”
public boolean onOptionItemSelected(MenuItem item){ 
正确的方法是
public boolean onOptionsItemSelected(MenuItem item){
感谢您的帮助Tim和CommonsWare     
我遇到了这个问题。就我而言,我已将活动屏幕的背景色设置为黑色。弹出菜单时,它具有透明的背景和黑色文本,所以我看不到它起作用。     

要回复问题请先登录注册