在fragemnet_crime.xml中,我有这样的代码,
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText android:id="@+id/crime_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/crime_title_hint"
/>
</LinearLayout>
在上面的代码中我创建了一个测试区域小部件,我给了id =“@ + id / crime_title” 所以在R.java文件中应该为crime_title生成一个自动资源id但是没有为crime_title创建任何字段所以在CrimeFragment.java文件中,当我尝试按如下方式检索资源时,它告诉了crime_title无法解析
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_crime, parent, false);
mTitleField = (EditText)v.findViewById(R.id.crime_title);
}
答案 0 :(得分:1)
在使用ID之前,请构建项目。
所以只要注明声明行,
mTitleField = (EditText)v.findViewById(R.id.crime_title);
之后,只需构建,取消注释,然后重新构建。
答案 1 :(得分:0)
以下解决方案之一可能适合您:
1)。可能是这样,您的某个资源文件中存在一些错误,例如在string.xml或任何其他布局文件中。因此,如果在任何此类文件上看到红色标记,您可以只导航到该文件,并纠正错误,这可能已停止自动为您的文本文件创建ID。
2)。您可以在Eclipse顶部菜单栏的项目菜单下选中自动构建选项。
3)。如果这不起作用,您可以只清理并构建项目。
4)。如果上述所有方法都失败了,只需重新启动Eclipse IDE。
答案 2 :(得分:0)
清理项目后,它生成了资源id thanku :)