如何在setSupportActionBar时添加ActionBar中的图标

4
我有以下代码来设置工具栏:
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
   list = (ListView) findViewById(R.id.ListView);
    toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    viewPager = (ViewPager) findViewById(R.id.viewpager);
    setupViewPager(viewPager);

    tabLayout = (TabLayout) findViewById(R.id.tabs);
    tabLayout.setupWithViewPager(viewPager);
    //downloadImage();
}

我需要添加这段代码吗?
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main, menu);

我想在工具栏操作栏中加入图标,应如何实现?
2个回答

11

是的,您应该添加。

   @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 //and this to handle actions
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

要添加图标,转到菜单目录下的main.xml并添加

<item android:id="@+id/action_settings" 
        android:title="@string/action_settings"
        android:icon="@drawable/icon"
        android:orderInCategory="100" 
        app:showAsAction="always" />

我应该返回 return(super.onCreateOptionsMenu(menu));。 - Moudiz
你应该先调用super,然后返回true。 - Eugen Pechanec
@EugenPechanec 我添加了这个,它可以工作了.. 这是正确的吧?public boolean onCreateOptionsMenu(Menu menu) { // 填充菜单;如果存在操作栏,则添加项目。 MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main, menu); return(super.onCreateOptionsMenu(menu)); } - Moudiz

3

是的,您需要那段代码。所以您想要一个 XML 文件,可以将其命名为“main_menu.xml”。

然后添加以下代码:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context=".MainActivity">
    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        app:showAsAction="always"
        android:title="@string/action_settings" />

    <item
        android:id="@+id/action_mainMenu2"
        android:icon="@drawable/main_menu"  // replace main_menu with your drawable
        android:orderInCategory="10"
        android:title="Main Menu"
        app:showAsAction="ifRoom|withText" /> />

</menu>

只需确保在此处放置您的可绘制对象 "android:icon=添加可绘制对象",它就会出现。祝你好运并玩得开心!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接