我正在尝试通过Android编程书中的示例(它的示例2,因此我没有很多调试经验)但我正在尝试使用@ + id / crime_title创建一个编辑文本。 我的问题是当我将其插入onCreateView方法时,它没有看到id。在findViewByID i中,无法解析R.id.crime_title或不是字段的错误。我究竟做错了什么?我确信它很简单,但我从这个例子中看不出我做错了什么。
编辑:我查看了R.java文件,并且在id下没有列出crime_title。有没有办法让它在那里? (该文件说不要手动更改任何内容)。
编辑:我已经完成了一个干净的重建,以便将id输入到R.java文件中。但现在我收到一个错误,即变量R无法解析。有什么我需要导入或遗失?
<?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>
在我的java文件中:
@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);
mTitleField.addTextChangedListener(new TextWatcher(){
@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1,
int arg2, int arg3) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence c, int start, int before,
int count) {
mCrime.setTitle(c.toString());
}
});
答案 0 :(得分:2)
mTitleField = (EditText) getView().findViewById(R.id.crime_title);
试试:)
答案 1 :(得分:1)
我试试这个! mTitleField =(EditText)findViewById(R.id.crime_title)没有“v”。如果这不起作用,请检查您是否以错误的方式更改了ID标题的名称。希望能帮助!!
答案 2 :(得分:0)
所以看一下我前面写的一些代码,看来你需要使用ViewGroup而不是View。
ViewGroup v = (ViewGroup)inflater.inflate(R.layout.fragment_crime, null);
试试这个,其余的代码不应该受到影响。