我正在自定义一个操作栏,我正在使用inflater和样式。
我在项目中的菜单文件夹中添加了menu.xml
,我将其扩展到了onOptionsMenu,
menu.xml包含操作栏项目。
一切正常,直到我使用折射器renamed menu.xml
到actionBar_menu.xml
。
现在我甚至无法将它添加到Inflater。它甚至没有在R.java中声明
如何解决任何提示或解决方案的问题?
谢谢
编辑:
谢谢你们的答案。
我按照你的要求做了,所以我将操作栏更改为actionb_menu.xml,但它仍无效。
否则它现在在R.java中声明,但是eclipse编辑器无法识别它 (ctrl + space),即使我忽略了这一点并继续在inflater中键入文件的名称,它仍然作为错误加下划线。
任何解决方案?
答案 0 :(得分:1)
您的原始问题是:您只能在布局XML文件名中使用小写字母,数字和下划线。如@midoalageb所述
这是您编辑的答案。
因为当您尝试
时,您的ID最初不在您的R.java中 R.id.....
eclipse已将android.R;
导入您的类文件。
您需要在文件顶部删除此导入:
import android.R;
然后尝试做:
R.id.whatever
一次。在R.
后按ctrl + space确保选择com.your.package.R
而非android.R
答案 1 :(得分:1)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context="com.something. app.OldJava" />
并将上下文值替换为您重新命名的新文件..像这样
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context="com.something. app.MyNewActivityJava" />
在eclipse中你改变了java文件的名字而且它是xml .. eclipse不会触及xml中的值所以我们必须改变它自己也是eclipse会添加一个导入行可能不会引用你的R文件..如果所以删除它并键入一个引用您的项目的R文件而不是Android或任何库
答案 2 :(得分:0)
您只能在布局XML文件名中使用小写字母,数字和下划线。因此,请将您的文件重命名为actionbar_menu.xml
答案 3 :(得分:0)
右键单击Project。首先刷新它 - &gt;然后清理它 - &gt;然后重建它 - >如果有必要的代码更改,那么就这样做 - &gt;它应该工作。
还在所有小案例中重命名
答案 4 :(得分:0)
尝试清理项目。如果它仍然说R无法解析那么xml文件应该有问题。检查您的xml文件中是否有一些您输错的额外字符或类似的内容。即使一个xml文件有错误,也不会构建您的R文件!