gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 15:50:51 24 4
gpt4 key购买 nike

我喜欢这个网站,你们都很棒!但这是我遇到的另一个问题:在我的应用程序中,我有一个在整个屏幕上显示网站的 WebView ,我编写了一个代码,通过按下手机的菜单按钮来显示菜单,我希望发生两件事第一个菜单项返回到应用程序的主屏幕,第二个菜单项退出应用程序或退出应用程序。第一个问题:按菜单按钮后,它会显示菜单...如果我再次按它,​​它会显示两个选项两次,如果我再次按它,​​现在两个项目都会显示 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>

返回main.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 Activity 正在运行,您可能需要将 FLAG_ACTIVITY_REORDER_TO_FRONTFLAG_ACTIVITY_CLEAR_TOP 添加到 Intent
  • 删除 menuToSalir 菜单选项。编写良好的 Android 应用程序不会调用 System.exit(0)。用户通过按 HOME 按钮离开您的应用程序,这与在 Web 应用程序中没有什么不同。

关于java - Android 硬件菜单按钮代码无法正常工作!需要帮忙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6077847/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com