我无法在操作栏中显示图标。
我正在使用最新的Eclipse与Eclipse。
我正在尝试做这个教程 http://developer.android.com/training/basics/actionbar/adding-buttons.html
我的MainActivity.java是
package com.example.myfirstapp;
import android.os.Bundle;
import android.app.Activity;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuInflater;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
}
菜单下的我的main.xml是
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
android:showAsAction="always" />
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
android:showAsAction="always" >
</item>
</menu>
但我没看到菜单项。看起来像这样 有关如何获取这些菜单项的任何帮助都很有用。
谢谢。
答案 0 :(得分:4)
引用docs:
上面的showAsAction属性使用自定义命名空间 在标签中定义。使用任何XML时都需要这样做 由支持库定义的属性,因为这些属性可以 旧设备上的Android框架中不存在。所以你必须使用 您自己的命名空间作为由...定义的所有属性的前缀 支持图书馆。
所以做以下修改:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
yourapp:showAsAction="always" />
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
yourapp:showAsAction="always" >
</item>
</menu>
答案 1 :(得分:1)
我很确定你一定已经这样做了,但是你下载了这些图标并将它们放在你的res中吗?可绘制的文件夹?如果您使用的是深色操作栏,请务必安装浅色图标,反之亦然。 我按照相同的教程,它适用于我。您的代码看起来是正确的。
答案 2 :(得分:1)
刚刚放
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
和
app:showAsAction="always" insted of android:showAsAction="always"
答案 3 :(得分:0)
我认为你的问题在这里:
return super.onCreateOptionsMenu(menu);
将其更改为:
return Boolean.TRUE;
来源:Menus in android和我的一个旧项目。
答案 4 :(得分:0)
我也在关注教程,我认为错误在于:
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
应该是
getMenuInflater().inflate(R.menu.main_activity_actions, menu);
答案 5 :(得分:0)
在我按照教程逐步完成后,这个问题花了我一些时间。有趣的是,我的问题是我使用了浅色搜索按钮图像,同时选择了黑暗的Holo主题。因此,我的搜索按钮在黑暗的背景中变得不可见(它就在那里)。如果你遇到同样的问题,你可以尝试调整你的主题。