Android findViewById参数无法解析或不是字段

时间:2013-08-01 14:19:34

标签: java android view textview

我正在关注ArrayAdapter的教程,我将这个xml文件命名为list_item.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<ImageView
    android:id="@+id/icon"
    android:layout_width="80dp"
    android:layout_height="80dp"
    android:contentDescription="@string/image"
    android:paddingLeft="10dp"
    android:paddingRight="10dp" />

<TextView
    android:id="@+id/title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@+id/icon"
    android:paddingBottom="10dp"
    android:textColor="#CC0033"
    android:textSize="16dp" />

<TextView
    android:id="@+id/desc"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/title"
    android:layout_toRightOf="@+id/icon"
    android:paddingLeft="10dp"
    android:textColor="#3399FF"
    android:textSize="14dp" />

</RelativeLayout>

其中包含此代码的Activity会在标有“X”的行上生成错误

convertView = mInflater.inflate(R.layout.list_item, null);
holder = new ViewHolder();
holder.txtDesc = (TextView) convertView.findViewById(R.id.desc);         X
holder.txtTitle = (TextView) convertView.findViewById(R.id.title);       X
holder.imageView = (ImageView) convertView.findViewById(R.id.icon);      X
convertView.setTag(holder);

代码是从教程中复制的,但我注意到它适用于activity_main.xml中所述的ID。

1 个答案:

答案 0 :(得分:0)

不确定这会对您有所帮助(更好地显示您的堆栈跟踪)但您是否尝试在通胀期间将convertView字段转换为RelativeLayout

如:

convertView = (RelativeLayout) mInflater.inflate(R.layout.list_item, null);

...也暗示,convertView类型为RelativeLayout,因为您的布局xml表示?

最后,这个问题发生了几次,实际上会在编译级别引起严重问题,请确保导入的R类是yourpackage.R,而不是android.R ,如果你需要两者,或者两者都有。否则很可能是你正在寻找错误的布局。