【问题标题】:Added action button on the toolbar isn't showing up工具栏上添加的操作按钮未显示
【发布时间】:2016-01-29 00:36:57
【问题描述】:

所以我最近尝试在工具栏上的溢出图标旁边添加另一个操作按钮:

但是按照关于添加操作按钮的教程,我无法让它显示在我的工具栏上。

这是我的菜单/menu_notify.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.jovie.canteen.MenuNotify">
    <item
        android:id="@+id/action_notify"
        android:icon="@drawable/ic_notifications_black_24px"
        android:title="@string/action_notify"
        app:showAsAction="always" />
</menu>

我将我假定的新操作按钮与我的主类中的 MenuNotify 新类分开,不确定这是否是在工具栏上添加新操作按钮的正确方法。

MenuNotify.java:

package com.example.jovie.canteen;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;

/**
 * Created by Jovie on 1/28/2016.
 */
public class MenuNotify extends AppCompatActivity {

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_notify, menu);
        return true;
    }

    @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.
        switch (item.getItemId()) {
            //noinspection SimplifiableIfStatement
            case R.id.action_notify:
                startActivity(new Intent(this, Home.class));
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }
}

顺便说一句,我的过滤器图标按钮在我的主类中。

编辑: 感谢 g2o 的帮助!

【问题讨论】:

  • 只是想验证您正在使用的活动类正在扩展MenuNotify 正确吗?
  • 是的,我用于新操作按钮的活动类是 MenuNotify。
  • 如果多个活动不会使用同一个菜单项,那么@g2o 的答案将使事情变得更简单,因为您确实不需要菜单项的基类。如果您知道如何使用调试器,请在onCreateOptionsMenu 中放置一个断点,以查看它是否被调用过。否则Log logcat 看看你是否到达那里。根据您之前的评论,我仍然不确定您是否有类似 MainActivity extends MenuNotify 的内容,其中 MainActivity 是您要开始的活动。
  • 我试着写 getMenuInflater().inflate(R.menu.menu_notify, menu);到 onCreateOptionsMenu 但是因为我已经有一个菜单(溢出),所以我决定创建一个新类,这样它就不会在它们之间造成错误,这是错误的,是的 g2o 的答案更简单并解决了我的问题,我顺便说一句,Java 新手,感谢您的帮助!

标签: java android


【解决方案1】:

我将我假定的新操作按钮与我的主类中的 MenuNotify 新类分开,不确定这是否是在工具栏上添加新操作按钮的正确方法。

无需创建新类即可添加新的操作按钮。 只需添加

<item
    android:id="@+id/action_notify"
    android:icon="@drawable/ic_notifications_black_24px"
    android:title="@string/action_notify"
    app:showAsAction="always" />

到你的 menu/main.xml 并添加

   case R.id.action_notify:
            startActivity(new Intent(this, Home.class));
            return true;

到您的 Main 类 onOptionsItemSelected 方法的 switch

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    • 2013-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多