我有三个要显示的列表。如何在单个布局上添加它们? 我的布局文件是
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/list1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<ListView
android:id="@+id/list2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<ListView
android:id="@+id/list3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
我为每个列表使用CustomAdapter
mylistview1 = (ListView) findViewById(R.id.list1);
mylistview2 = (ListView) findViewById(R.id.list2);
mylistview3 = (ListView) findViewById(R.id.list3);
//1
CustomAdapterA adapterA = new CustomAdapterA(this, rowItems1);
mylistview1.setAdapter(adapterA);
mylistview1.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
String member_name = rowItems1.get(position).getMember_name();
Toast.makeText(getApplicationContext(), "" + member_name,
Toast.LENGTH_SHORT).show();
}
});
//2
CustomAdapterM adapterM = new CustomAdapterM(this, rowItems2);
mylistview2.setAdapter(adapterM);
mylistview2.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
String member_name = rowItems2.get(position).getMember_name();
Toast.makeText(getApplicationContext(), "" + member_name,
Toast.LENGTH_SHORT).show();
}
});
//3
CustomAdapterS adapterS = new CustomAdapterS(this, rowItems3);
mylistview3.setAdapter(adapterS);
mylistview3.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
String member_name = rowItems3.get(position).getMember_name();
Toast.makeText(getApplicationContext(), "" + member_name,
Toast.LENGTH_SHORT).show();
}
});
我尝试将每个布局放在单独的线性布局中,但没有奏效, 任何人都可以建议应该在这做什么???
答案 0 :(得分:0)
尝试制作每个ListViews占据屏幕高度的1/3,看看它们是否可见。
<ListView
android:id="@+id/list1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1
/>
<ListView
android:id="@+id/list2"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1
/>
<ListView
android:id="@+id/list3"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1
/>
答案 1 :(得分:0)
最初,listview看起来像是占据了整个屏幕。您必须相应地设置其宽度以在一个屏幕中查看它们。
答案 2 :(得分:0)
如果您的想法是完成一个列表,则可以看到下一个列表,答案是:
不,你不能这样做。在您的适配器上,您应该覆盖getViewTypeCount()
并返回3,然后为每个位置生成正确的视图。
如果你想让每个列表占据屏幕的1/3,你必须使用XML中的layout_weight
参数:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/list1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
/>
<ListView
android:id="@+id/list2"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
/>
<ListView
android:id="@+id/list3"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
/>