当我在菜单中选择一个选项并且只显示图标的空间而不显示图标时,我想在工具栏中显示3个图标,我在xml中尝试了很多动作但是任何东西都不起作用,请帮忙,谢谢在建议中。
这是XML。
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
<item android:id="@+id/bno_marcadores"
android:visible="false"
yourapp:showAsAction="always"
android:title="@string/disable_draw"
android:showAsAction="always">
</item>
<item android:id="@+id/escribir_negro"
android:visible="false"
yourapp:icon="@drawable/escribirnegro"
yourapp:showAsAction="always"
android:showAsAction="always">
</item>
<item android:id="@+id/escribir_blanco"
android:visible="false"
yourapp:showAsAction="always"
yourapp:icon="@drawable/escribirblanco"
android:showAsAction="always">
</item>
<item android:id="@+id/escribir_azul"
android:visible="false"
yourapp:showAsAction="always"
yourapp:icon="@drawable/escribirazul"
android:showAsAction="always">
</item>
<group android:id="@+id/options_in_book"
android:visible="false">
<item android:id="@+id/inserttext"
android:title="@string/inserttext"
android:titleCondensed = " "
yourapp:icon="@drawable/ic_pluma"
yourapp:showAsAction="collapseActionView">
</item>
<item android:id="@+id/pluma_az"
android:title="@string/pluma_az"
android:titleCondensed = " "
yourapp:icon="@drawable/ic_pluma"
yourapp:showAsAction="collapseActionView">
</item>
<item android:id="@+id/Marcador_ama"
android:title="@string/Marcador_ama"
android:titleCondensed = " "
yourapp:icon="@drawable/ic_plumon_ama"
yourapp:showAsAction="collapseActionView">
</item>
<item android:id="@+id/Marcador_verde"
android:title="@string/Marcador_verde"
android:titleCondensed = " "
yourapp:icon="@drawable/ic_plumon_ver"
yourapp:showAsAction="collapseActionView">
</item>
<item android:id="@+id/borrador"
android:title="@string/borrador"
android:titleCondensed = " "
yourapp:icon="@drawable/ic_borrador"
yourapp:showAsAction="collapseActionView">
</item>
</group>
<item android:id="@+id/reload_menu"
android:visible="false"
android:title="@string/reload_menu"
android:icon="@android:drawable/ic_popup_sync"
yourapp:showAsAction="ifRoom|collapseActionView">
</item>
插入文本是选项,escribir_negro,escirbir_azul,escribir_blanco是我想要显示的项目。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
if(drawerLayout.isDrawerOpen(GravityCompat.START)){
drawerLayout.closeDrawers();//(myindice);
}else
finish();
break;
case R.id.Marcador_ama:
case R.id.Marcador_verde:
case R.id.pluma_az:
Toastme_please("Navegación deshabilitada");
Integer color = (item.getItemId() == R.id.Marcador_ama ? 2 : (item
.getItemId() == R.id.Marcador_verde ? 1 : 0));
for (Integer i = 0; i < 2; i++) {
mViews[i].color = color;
}
/*dis_en_controls(false);*/
book_menu.findItem(R.id.bno_marcadores).setVisible(true);
dibujar = true;
borrar = false;
escribir =false;
book_menu.findItem(R.id.escribir_negro).setVisible(false);
book_menu.findItem(R.id.escribir_blanco).setVisible(false);
book_menu.findItem(R.id.escribir_azul).setVisible(false);
break;
case R.id.borrador:
Toastme_please("Navegación deshabilitada");
book_menu.findItem(R.id.bno_marcadores).setVisible(true);
dibujar = false;
borrar = true;
escribir =false;
book_menu.findItem(R.id.escribir_negro).setVisible(false);
book_menu.findItem(R.id.escribir_blanco).setVisible(false);
book_menu.findItem(R.id.escribir_azul).setVisible(false);
//dis_en_controls(false);
break;
case R.id.bno_marcadores:
Toastme_please("Navegación habilitada");
dibujar = false;
borrar = false;
escribir = false;
book_menu.findItem(R.id.escribir_negro).setVisible(false);
book_menu.findItem(R.id.escribir_blanco).setVisible(false);
book_menu.findItem(R.id.escribir_azul).setVisible(false);
//dis_en_controls(true);
item.setVisible(false);
break;
case R.id.inserttext:
Toastme_please("Navegación habilitada");
escribir = true;
dibujar = false;
borrar = false;
book_menu.findItem(R.id.bno_marcadores).setVisible(true);
book_menu.findItem(R.id.escribir_negro).setVisible(true);
book_menu.findItem(R.id.escribir_blanco).setVisible(true);
book_menu.findItem(R.id.escribir_azul).setVisible(true);
case R.id.escribir_negro:
for (Integer i = 0; i < 2; i++) {
mViews[i].color = 3;
}
break;
case R.id.escribir_blanco:
for (Integer i = 0; i < 2; i++) {
mViews[i].color = 4;
}
break;
case R.id.escribir_azul:
for (Integer i = 0; i < 2; i++) {
mViews[i].color = 5;
}
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
答案 0 :(得分:2)
您需要更改您的app:icon for android:icon
改变这个:
<item android:id="@+id/escribir_azul"
android:visible="false"
yourapp:showAsAction="always"
yourapp:icon="@drawable/escribirazul"
android:showAsAction="always">
</item>
为此:
<item android:id="@+id/escribir_azul"
android:visible="false"
yourapp:showAsAction="always"
android:icon="@drawable/escribirazul">
</item>
答案 1 :(得分:0)
而不是尝试打开ID并找到合适的ID,然后执行操作,您只需使用传入的项目。
item.setVisible(true);
或者在群组中,当您点击群组时,您希望孩子可见:
Menu menu = new Menu(); // Can also be inflated menu from XML
public void onGroupItemClick(MenuItem item) {
menu.setGroupVisible(item.getGroupId(), true);
}
我想这会为你简化一些事情。
http://developer.android.com/guide/topics/resources/menu-resource.html