我正在关注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。
答案 0 :(得分:0)
不确定这会对您有所帮助(更好地显示您的堆栈跟踪)但您是否尝试在通胀期间将convertView
字段转换为RelativeLayout
?
如:
convertView = (RelativeLayout) mInflater.inflate(R.layout.list_item, null);
...也暗示,convertView
类型为RelativeLayout
,因为您的布局xml表示?
最后,这个问题发生了几次,实际上会在编译级别引起严重问题,请确保导入的R
类是yourpackage.R
,而不是android.R
,如果你需要两者,或者两者都有。否则很可能是你正在寻找错误的布局。