我喜欢这个网站你们所有人都很棒!但这是我的另一个问题: 在我的应用程序中,我有一个webview,在整个屏幕上显示一个网站,我已经制作了一个代码来显示一个菜单,通过按下手机的菜单按钮从哪里我想要2件事发生第一个菜单项回到应用程序的主屏幕,第二个菜单项退出应用程序或退出应用程序。 第一个问题: 按下菜单按钮后,它显示菜单...如果我再次按下它会显示两个选项两次,如果我再次按它,现在两个项目显示3次,依此类推! 第二个问题: 选择这两个选择中的任何一个都没有任何反应 这是我的代码请告诉我我做错了什么! 感谢
menu 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;
}
答案 0 :(得分:1)
您正在super.onCreateOptionsMenu()
致电onPrepareOptionsMenu()
。而且,您正在onPrepareOptionsMenu()
向菜单中添加相同的选项。将onPrepareOptionsMenu()
重命名为onCreateOptionsMenu()
,它可能会表现得更好。
此外:
my.app.BACKTOMAIN
活动正在运行,您可能希望将FLAG_ACTIVITY_REORDER_TO_FRONT
或FLAG_ACTIVITY_CLEAR_TOP
添加到Intent
。menuToSalir
菜单选项。没有编写良好的Android应用程序会调用System.exit(0)
。用户通过按HOME按钮离开您的应用程序,与Web应用程序中的不同。答案 1 :(得分:0)
要解决您的第一个问题,请尝试onCreateOptionsMenu(),而不是onPrepareOptionsMenu()。
我不肯定如何修复第二个问题,我通常用java创建菜单,而不是像你一样使用xml。
答案 2 :(得分:0)
我发现它有问题!我错过了......的“s”。
public boolean onOptionItemSelected(MenuItem item){
正确的方法是
public boolean onOptionsItemSelected(MenuItem item){
感谢Tim和CommonsWare的帮助
答案 3 :(得分:0)
我遇到了这个问题。在我的情况下,我已将活动屏幕的背景颜色设置为黑色。当菜单弹出时,它有一个透明的背景和黑色文字,所以我没有看到它工作。