【发布时间】: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 新手,感谢您的帮助!