片段只显示一个列表

时间:2013-04-10 19:20:52

标签: android android-fragments

我尝试从我的片段中显示两个列表。当我显示第一个(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>

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

3 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

    ListView中的
  1. ListFragment位于android.R.id.list下。只可以有一个人。在该视图中使用Fragment
  2. 如果您尝试使ListFragment所在的android:id="@+id/fragment_container"居住,那么您已经做错了。您正试图将Fragment放入Fragment,以便Fragment
  3. 停止使用硬编码android:layout_width