我正在尝试在按钮单击
上的一个对话框中添加三个列表视图 //Prepare ListView in dialog
dialog_ListView = (ListView)dialog.findViewById(R.id.dialoglist);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listContent);
// custom adapter on listView in android
CustomListviewAdapter adapter2 = new CustomListviewAdapter(MainActivity.this, listContent);
dialog_ListView.setAdapter(adapter);
dialog_ListView1=(ListView)dialog.findViewById(R.id.dialoglist1);
ArrayAdapter<String> arrayadapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listContent2);
CustomListviewAdapter adapter3=new CustomListviewAdapter(MainActivity.this,listContent2);
dialog_ListView1.setAdapter(arrayadapter);
dialog_ListView2=(ListView)dialog.findViewById(R.id.dialoglist2);
ArrayAdapter<String> arrayadapter1=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listContent3);
CustomListviewAdapter adapter4=new CustomListviewAdapter(MainActivity.this,listContent3);
dialog_ListView2.setAdapter(arrayadapter1);
答案 0 :(得分:0)
您必须制作自定义xml布局,例如dialog_lists.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:orientation="vertical">
<ListView
android:layout_width="wrap_content"
android:layout_height="0dp"
android:id="@+id/first"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_weight="1" />
<ListView
android:layout_width="wrap_content"
android:layout_height="0dp"
android:id="@+id/second"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_weight="1" />
<ListView
android:layout_width="wrap_content"
android:layout_height="0dp"
android:id="@+id/third"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_marginRight="46dp"
android:layout_weight="1" />
</LinearLayout>
如上所示,将所有3个列表视图放在其中,然后使用以下命令初始化对话框:
AlertDialog.Builder builder = new AlertDialog.Builder(context);
View parent = getLayoutInflater().inflate(R.layout.dialog_lists,null);
ListView first = (ListView)parent.findViewById(R.id.first);
ListView second = (ListView)parent.findViewById(R.id.second);
ListView third = (ListView)parent.findViewById(R.id.third);
first.setAdapter(...);
second.setAdapter(...);
third.setAdapter(...);
builder.setView(parent);
builder.setNeutralButton("Close", null);
builder.create().show();
注意:我必须补充一点,这将是一个糟糕的设计选择,特别是当我在一个小屏幕上想象这样的对话框时。
答案 1 :(得分:0)
您想要在一行或一列中排列三个ListView吗? 如果你想在列中排列它们,我建议你可以使用ExanpandableListView。 否则你可以接受以前的建议,但你最好做一些这样的改变:
<ListView
*android:layout_height="match_parent"
android:layout_width="0dp"*
android:id="@+id/first"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_weight="1" />
<ListView
*android:layout_height="match_parent"
android:layout_width="0dp"*
android:id="@+id/second"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_weight="1" />
<ListView
*android:layout_height="match_parent"
android:layout_width="0dp"*
android:id="@+id/third"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_marginRight="46dp"
android:layout_weight="1" />
Beacase match_parent的值优于ListView
中的其他值