Android 当我选择菜单选项一次。OnOptions ItemSelected被调用两次。(安卓)
单击“我的菜单”两次时,将调用onoptionitemselected。如何阻止它Android 当我选择菜单选项一次。OnOptions ItemSelected被调用两次。(安卓),android,menu,Android,Menu,单击“我的菜单”两次时,将调用onoptionitemselected。如何阻止它 @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.docmenu, menu); return true; } @Override public boolean onOptionsItemS
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.docmenu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.upload:
Log.e("testing", "called");
return true;
case R.id.back:
return true;
default:
return super.onOptionsItemSelected(item);
}
}
我的菜单xml是
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/upload"
android:icon="@drawable/menu_upload"
android:title="@string/upload" />
<item android:id="@+id/back"
android:icon="@drawable/menu_back"
android:title="@string/back" />
</menu>
选择上载图标时。在日志中,调用的测试被打印两次
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId())
{
case R.id.Aboutus:
final Dialog d1 = new Dialog(Welcome.this);
d1.setContentView(R.layout.aboutus);
d1.show();
break;
并确保已在res named菜单下创建文件夹。并创建新的menu.xml文件
并将如下代码放入menu.xml文件中,如下所示:
<?xml version="1.0" encoding="utf-8"?>
并确保已在res named菜单下创建文件夹。并创建新的menu.xml文件
并将如下代码放入menu.xml文件中,如下所示:
<?xml version="1.0" encoding="utf-8"?>
onOptionsItemSelected返回true正常onOptionsItemSelected返回true正常尝试以下代码
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.menu_settings:
Toast.makeText(getApplicationContext(), "Settings", Toast.LENGTH_LONG).show();
break;
case R.id.my_settings:
Toast.makeText(getApplicationContext(), "Home Page", Toast.LENGTH_LONG).show();
break;
default:
Toast.makeText(getApplicationContext(), "Exit", Toast.LENGTH_LONG).show();
}
return super.onOptionsItemSelected(item);
}
在菜单文件夹中创建一个新的xml,并应用此代码
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_settings"
android:title="@string/menu_settings"
android:orderInCategory="100"
android:showAsAction="never" />
<item android:id="@+id/my_settings"
android:title="@string/my_settings"
android:orderInCategory="100"
android:showAsAction="never" />
</menu>
试试这段代码
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.menu_settings:
Toast.makeText(getApplicationContext(), "Settings", Toast.LENGTH_LONG).show();
break;
case R.id.my_settings:
Toast.makeText(getApplicationContext(), "Home Page", Toast.LENGTH_LONG).show();
break;
default:
Toast.makeText(getApplicationContext(), "Exit", Toast.LENGTH_LONG).show();
}
return super.onOptionsItemSelected(item);
}
在菜单文件夹中创建一个新的xml,并应用此代码
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_settings"
android:title="@string/menu_settings"
android:orderInCategory="100"
android:showAsAction="never" />
<item android:id="@+id/my_settings"
android:title="@string/my_settings"
android:orderInCategory="100"
android:showAsAction="never" />
</menu>
如何初始化菜单?如何初始化菜单?现在我添加了xml和初始化菜单代码。有什么问题吗?@Manoharan正确地打破了每个案例。如果布尔值应该返回,你怎么能打破呢?现在我添加了我的xml并初始化了菜单代码。有什么问题吗?@Manoharan正确地破译每个案例。如果返回布尔值,你怎么破译呢