我最近不得不在应用程序的视图中添加一些单选按钮。 但是,由于编译时出现以下错误,所以我实际上无法编译:{{1}}其中CR是新UI元素的ID。但是,它可以毫无问题地识别以前创建的UI元素(当然,布局相同)。
error: cannot find symbol variable CR
此xml导致找不到CR。
<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.02">
<RadioButton
android:id="@+id/CR"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Example text" />
</RadioGroup>
作为比较,我可以发现此视图没有任何问题。
按顺序,这是两个ID的 <EditText
android:id="@+id/Note"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:text="@string/note"
android:textColor="@color/borderColor" />
调用:
findViewById()
RadioButton cardLeft = findViewById(R.id.CR); //leads to symbol not found
。
我还注意到ID在R中没有任何显示。
这是我尝试解决此问题的方法:
final EditText NoteField = (EditText) findViewById(R.id.Note); //works perfectly
Clean Project-->Rebuild
Invalidate Caches and restart
Invalidate Caches-->clean project-->Restart
Deleted R
Checked that android.R wasn't being imported
Recreated the project and imported the code from git (and only the code, no generated files of course)
Tried changing IDs, just in case, to no avail.
很明显,对代码或设置的任何修改都将导致缓存无效和项目清除,以防万一。 进一步的测试表明,我根本无法添加新的UI项,因为它们不会添加到R中。
自动完成功能显示新ID具有负值而不是地址。
因此,由于我已经完全没有想法了,因此有什么我想念的东西/更多未知的解决方案吗?
答案 0 :(得分:0)
我发现解决此问题的唯一方法是在自定义xml文件中声明ID,然后使用android:id="@id/CR"
而不是android:id="@+id/CR
。
但是,这是一种解决方法,它并不能解决真正的问题,因此,我还是愿意征求建议,以防万一。