1

嗨,我正在尝试向合并适配器添加视图,但我不完全确定该怎么做。我想在两个列表之间添加一个标题栏。到目前为止,我有 3 个阵列适配器填充一个列表,我想在每个列表之间添加一个标题。我有一个要用于标题的 .xml 布局,或者以编程方式编写布局会更好。

这是我到目前为止所尝试的内容,但是当我滚动它时会不断出错,它会使应用程序崩溃。希望我已经说得够清楚了,因为我认为学习这个真的很有用。

arrayAdapter = new ArrayAdapter<String>(this, R.layout.single_item, newsList);
    arrayAdapter2 = new ArrayAdapter<String>(this, R.layout.single_item, newsList2);
    arrayAdapter3 = new ArrayAdapter<String>(this, R.layout.single_item, newsList3);


     RelativeLayout layout = new RelativeLayout(this);
        RelativeLayout.LayoutParams labelLayoutParams = new RelativeLayout.LayoutParams(
                LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
        layout.setLayoutParams(labelLayoutParams);

        ImageView mImage = new ImageView(this);
        mImage.setBackgroundResource(R.drawable.titlerect);        
        //layout.addView(mImage,labelLayoutParams);





     //RelativeLayout rc = (RelativeLayout) findViewById(R.id.redcelllayout);
    LayoutInflater inflater = 
                   (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
     View Header = inflater.inflate(R.layout.redcell, layout, true);



    setListAdapter (arrayAdapter);

       ListView list = getListView();
       list.setTextFilterEnabled(true);

        adapter = new MergeAdapter();
        adapter.addAdapter(arrayAdapter);
        adapter.addView(mImage);
        adapter.addAdapter(arrayAdapter2);

        adapter.addAdapter(arrayAdapter3);
        setListAdapter(adapter);

    }   

这是标题栏的xml布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
     android:id="@+id/redcelllayout" >



    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:src="@drawable/titlerect" />

    <TextView
        android:id="@+id/redheadertext"
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:gravity="left"
        android:paddingLeft="15dp"
        android:paddingTop="3dp"
        android:textColor="@color/white"
        android:textSize="15dp"
        android:textStyle="bold"/>

这也是我得到的错误

05-11 09:51:06.187: E/AndroidRuntime(8598): java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams
05-11 09:51:06.187: E/AndroidRuntime(8598):     at android.widget.ListView.setupChild(ListView.java:1834)
05-11 09:51:06.187: E/AndroidRuntime(8598):     at android.widget.ListView.makeAndAddView(ListView.java:1803)
05-11 09:51:06.187: E/AndroidRuntime(8598):     at android.widget.ListView.fillDown(ListView.java:670)
05-11 09:51:06.187: E/AndroidRuntime(8598):     at android.widget.ListView.fillGap(ListView.java:641)
4

2 回答 2

0

请用

RelativeLayout.LayoutParams labelLayoutParams = new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams..FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT);

代替

RelativeLayout.LayoutParams labelLayoutParams = new RelativeLayout.LayoutParams(
            LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);

这导致了 ClassCastException,如堆栈跟踪中所示

于 2012-05-11T09:59:07.600 回答
0

试试这个

    View headerView = View.inflate(this, R.layout.layout_name, null);
    lv.addHeaderView(headerView);

其中 lv 是列表视图。

在设置适配器之前添加您的标题。

于 2012-05-11T10:05:03.950 回答