使用片段识别@ + id时出错

时间:2014-01-03 00:03:39

标签: android android-layout android-fragments

我正在尝试通过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());
        }

    });

3 个答案:

答案 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);

试试这个,其余的代码不应该受到影响。