我正在尝试将菜单项添加到操作栏。 菜单/ main.xml中:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/change_language"
android:showAsAction="always"
android:title="JP">
</item>
<item
android:id="@+id/lists"
android:icon="@android:drawable/ic_menu_agenda"
android:showAsAction="always"
android:title="Lists">
</item>
<item
android:id="@+id/collections"
android:icon="@android:drawable/ic_menu_star"
android:showAsAction="ifRoom"
android:title="Collections">
</item>
</menu>
change_language,列表项目工作正常。菜单项&#34;集合&#34;没有显示
MainActivity.java
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
menu.findItem(R.id.change_language).setTitle("JP");
return true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
没有任何错误。我检查了R.java。没有提及&#34;集合&#34;。在撰写&#34; R.id时,Intellicence也没有给出提示。 &#34; 如何将菜单项添加到操作栏?也许这是因为我将应用发布到Google Play。但是,我已将Debuggable设置为&#39; true&#39;。
答案 0 :(得分:0)
上面的showAsAction属性使用定义的自定义命名空间 标签。使用任何定义的XML属性时,这是必需的 支持库,因为这些属性不存在 旧设备上的Android框架。所以你必须使用自己的命名空间 作为支持库定义的所有属性的前缀。
请将此添加到您的代码'xmlns:yourapp =“http://schemas.android.com/apk/res-auto”'
并设置showAsAction属性,如下所示:yourapp:showAsAction =“always”in your items
答案 1 :(得分:0)
R.java
不包含id.collections
,它只包含main.xml
,如下所示:
public static final class menu {
public static final int main=0x7f0e0000;
}
此外,您的应用发布和此问题无关。
R.id.change_language
在哪里?如果您想创建带有图标和标题的自定义操作栏,则必须修改main.xml
并添加如下自定义布局:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/collection"
android:actionLayout="@layout/your_custom_layout"
android:showAsAction="ifRoom|withText"
android:title="ActionBar"/>
</menu>
your_custom_layout.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/your_imageview"
android:background="@android:drawable/ic_menu_star" />
<TextView
android:id="@+id/change_language"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
然后,您可以在findViewById
函数中onCreateOptionsMenu
。
希望这有帮助!