我正在尝试将带有ImageView的标头添加到我的ListView中。我将ImageView放在XML布局中,在Activity中我将布局放大并将其添加到ListView标头中,但是当我运行应用程序时它会崩溃说" java.lang.ClassCastException:android.widget .LinearLayout $ LayoutParams无法强制转换为android.widget.AbsListView $ LayoutParams" 。
我尝试将LinearLayout更改为其他布局,但仍然收到此错误消息。有什么想法吗?
list_header_banner.xml代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/publicidadeView"
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:scaleType="fitXY"
android:clickable="true"
/>
</LinearLayout>
活动夸大代码示例
ListView list = (ListView)findViewById(R.id.lvResults);
View headerView = View.inflate(this, R.layout.list_header_banner, null);
list.addHeaderView(headerView);
try {
ImageView publicidadeView = (ImageView) headerView.findViewById(R.id.publicidadeView);
} catch (NullPointerException e) {
}
活动布局代码示例
<ListView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/lvResults"
android:layout_gravity="center_horizontal|top"
android:divider="@drawable/divider"
/>
答案 0 :(得分:0)
尝试使用当前上下文(this)来扩充布局:
View view = LayoutInflater.from(this).inflate(R.layout.list_header_banner, null);
答案 1 :(得分:0)
我刚刚尝试使用此代码段,它适用于我。
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout headerLayout = (LinearLayout) inflater.inflate(R.layout.list_header_banner, null);
listView.addHeaderView(headerLayout);