在工具栏Android中显示图标

时间:2014-12-16 17:50:00

标签: java android icons toolbar

当我在菜单中选择一个选项并且只显示图标的空间而不显示图标时,我想在工具栏中显示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>  

Here is the image with the option selected,

插入文本是选项,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);
    }

2 个答案:

答案 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