0

我尝试从我的片段中显示两个列表。当我显示第一个(array1)时,没关系。但是当我添加第二个时,它只是替换了第一个,我只看到第二个列表(数组 2)。这是我的代码,请告诉我这里有什么问题吗?

这是我的片段文件:

public class ToFragment extends ListFragment {   
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        String[] array1 = {
                "listitem1",
                "listitem2"
        };
        String[] array2 = {
                "listitem1"
        };
        ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(inflater.getContext(), R.layout.trainlist, R.id.traintextviewid);
        adapter1.addAll(array1);    
        setListAdapter(adapter1);

        ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(inflater.getContext(), R.layout.trainlist, R.id.timetextviewid);
        adapter2.addAll(array2);    
        setListAdapter(adapter2);

        return super.onCreateView(inflater, container, savedInstanceState);
    }

这是 tofragment.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/fragment_container"
        android:baselineAligned="false"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center"
        android:orientation="horizontal" >
        <ListView
            android:id="@+id/trainlist"
            android:layout_width="250dp"
            android:layout_height="wrap_content" >
        </ListView>
        <ListView
            android:id="@+id/timelist"
            android:layout_width="48dp"
            android:layout_height="wrap_content">
        </ListView>         
</LinearLayout>

和 trainlist.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >
    <TextView
        android:id="@+id/traintextviewid"
        android:textIsSelectable="true"
        android:layout_width="250dp"
        android:layout_height="48dp"/>
    <TextView
        android:id="@+id/timetextviewid"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:textIsSelectable="true" />
</LinearLayout>

我希望它看起来像两个列表,第二个是低宽度。请告诉我该怎么办!

4

3 回答 3

0

如果要合并两个数组并在列表视图中显示结果,请将它们添加到一个 ArrayAdapter。不要为每个阵列创建适配器。

    adapter1.addAll(array1); 
    adapter1.addAll(array2);       
    setListAdapter(adapter1);

如果你想要单独的列表,你应该使用带有两个 listliews 或两个 ListFragments 的自定义片段(一个列表一个 listfragment)。

于 2013-04-10T19:33:44.950 回答
0

ListFragment不能支持多个列表。如果您需要更多,请使用常规Fragment作为主机。

于 2013-04-10T19:35:28.663 回答
0
  1. ListViewListFragment下举行android.R.id.list。只可以有一个人。将 aFragment与该视图一起使用。
  2. 如果您试图适应ListFragment居住地android:id="@+id/fragment_container",那么您已经做错了。你正试图把 aFragment放进去Fragment,这样你就可以了Fragment
  3. 停止使用硬编码android:layout_width
于 2013-04-10T19:41:45.377 回答