我找到了一个解决方法,我将作为答案发布,但它仍然提出了为什么它首先发生的问题。
当我尝试通过Design GUI添加新ID时,我在框中输入名称:
id_sample
只要我开箱即用,它就会@+id/
:
@+id/id_sample
这听起来很合理,因为 - 嘿,它必须按照documentation添加一个新的ID,对吧?
但是当我进入java代码时,自动完成功能在代码方面给了我乱码 - 因为额外的@+id/
,自动完成功能为我提供@+id/id_sample
总计
menu.findItem(R.id.@+id/id_sample);
,其中包含无效字符;删除它们时:
menu.findItem(R.id.id_sample);
给出错误Cannot resolve symbol 'id_sample'
,因为xml坚持正确的名称包含无效字符。赶上22。
那么如何正确引用id?
答案 0 :(得分:0)
查看xml,@+id/
实际上已将添加到@+id/id_sample
:
android:id=@+id/@+id/id_sample
这显然给了编译器心脏病发作。弄清楚发生了什么事后,很容易(尽管很乏味)足以跳进xml并删除额外的@+id/
但是我看不出有什么方法可以让设计师把它放在第一个的地方。
在xml中更正后,它会在GUI中自动更正,当您进入java代码时,自动完成将为您提供正确的名称,编译器将识别它。
剩下的就是想知道是否有一些我做错了导致这种情况。这是一个已知(或未知)的错误?知道什么是错的,它可以在xml中修复,但似乎GUI应该首先正确。正确?