在android中的一个对话框里面自定义ListView

时间:2012-11-22 01:45:37

标签: android listview android-listview

我正在尝试使用listview创建一个自定义对话框,该对话框将包含复选框和textview,我无法找到合理的教程来执行此操作,任何帮助或提示都将不胜感激。

3 个答案:

答案 0 :(得分:5)

private void showPopUp()
{
    final AlertDialog.Builder helpBuilder = new AlertDialog.Builder(this);
    helpBuilder.setTitle("");

    LayoutInflater inflater = getLayoutInflater();
    final View PopupLayout = inflater.inflate(R.layout.yourxml, null);
    helpBuilder.setView(PopupLayout);

    final AlertDialog helpDialog = helpBuilder.create();
    helpDialog.show();

    jobList         =   (ListView)PopupLayout.findViewById(R.id.list);

    mylist          =   new ArrayList<HashMap<String, String>>();

    for(int i=0;i<arraylist.size();i++)
    {
        map = new HashMap<String, String>();
        map.put("name", arraylist.get(i));
        mylist.add(map);
    }
    sd = new SimpleAdapter(activity.this,mylist,R.layout.jobslist,
                new String[]{"name"},new int[]{R.id.jobText});
    jobList.setAdapter(sd);


}

<强> joblist.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/lin01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#fff"
android:padding="10dp"
android:orientation="horizontal">

        <TextView
            android:id="@+id/jobText"
            android:layout_width="0dp"
            android:text="@string/jobtype"
            android:layout_weight="1"
            android:gravity="left|center_vertical"
            android:layout_marginLeft="10dp"
            android:textSize="25dp"
            android:textColor="#000"
            android:layout_height="50dp"/>

        <CheckBox 
            android:id="@+id/chk"
            android:layout_width="wrap_content"
            android:text=""
            android:gravity="center_vertical|right"
            android:layout_height="wrap_content"/>


        </LinearLayout>

您可以在任何想要使用listview显示警告对话框的地方调用此showPopUp();函数。请注意,会有一个arraylist,您可以添加项目以显示列表中的项目

答案 1 :(得分:2)

    ListView myList = new ListView(Activity.this);
    myList.setAdapter(adapter);

    AlertDialog.Builder builder = new AlertDialog.Builder(Activity.this);
    builder.setView(myList);
    Dialog d = builder.create();
    d.show();

您可以指定文本视图和复选框以及适配器中的其他任何内容。

答案 2 :(得分:1)

听起来你正在寻找的是ListView的多选模式。在不知道这个短语的情况下,很难得到一个好的例子,但是here's another SO question with answers that might help you out.

(在对话框中执行此操作基本上与所选答案的示例中的过程相同。)