我尝试从我的片段中显示两个列表。当我显示第一个(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>
我希望它看起来像两个列表,第二个是低宽度。请告诉我该怎么做!
答案 0 :(得分:0)
如果要合并两个数组并在listview中显示结果,请将它们添加到一个ArrayAdapter中。不要为每个数组创建适配器。
adapter1.addAll(array1);
adapter1.addAll(array2);
setListAdapter(adapter1);
如果你想要单独的列表,你应该使用带有两个listliews或两个ListFragments的自定义片段(一个列表的一个listfragment)。
答案 1 :(得分:0)
ListFragment
不能支持多个列表。如果您需要更多内容,请使用常规Fragment
作为主持人。
答案 2 :(得分:0)
ListView
中的ListFragment
位于android.R.id.list
下。只可以有一个人。在该视图中使用Fragment
。ListFragment
所在的android:id="@+id/fragment_container"
居住,那么您已经做错了。您正试图将Fragment
放入Fragment
,以便Fragment
。android:layout_width