动作栏上的Android图标

时间:2016-05-17 17:11:56

标签: java android xml

我的代码:

在java文件中

 public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu_main , menu);
        return true;
    }

在菜单xml文件中

  <menu
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.patryk.menu_test.MainActivity">
<item
    android:id="@+id/group_item1"
    android:title="settings"
    android:icon="@drawable/ic_shop_white_24dp"
    app:showAsAction="always"
    />
<item
    android:id="@+id/group_item2"
    android:title="about"
    android:icon="@drawable/ic_shop_white_24dp"
    app:showAsAction="always"
    />
</menu>

onCreate

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
    }

我的问题:我在actionBar上看不到任何图标。

  • 你知道为什么吗?
  • 有关此主题的标准错误的任何建议吗?

PS。我正在使用android studio。

谢谢。

2 个答案:

答案 0 :(得分:1)

您需要指定每个菜单项将使用的图标。这可以通过以下方式完成:

android:icon="@drawable/my_icon"

答案 1 :(得分:0)

您必须添加drawable

<item
    android:id="@+id/group_item1"
    android:icon="@drawable/ic_drawable_settings"
    android:title="Settings"
    app:showAsAction="ifRoom|Always" />

这里ic_drawable_settings是一个可绘制的。您还需要遵循两个override方法

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main, menu);

    return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();

    if (item.getItemId() == android.R.id.home) {
        onBackPressed();
        return true;
    } else if (id == R.id.YOUR_MENU_ID) {
        //.....your code here 
        return true;
    }

    return super.onOptionsItemSelected(item);
}