我正在尝试使用列表视图创建一个自定义对话框,该对话框将包含复选框和文本视图,我只是找不到合理的教程来完成它,任何帮助或提示将不胜感激。
问问题
9805 次
3 回答
6
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);
}
工作清单.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>
showPopUp();
你可以在任何你想用 listview 显示警告对话框的地方调用这个函数。请注意,将有一个数组列表,您可以向其中添加项目以显示列表中的项目
于 2012-11-22T03:33:03.530 回答
3
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();
您可以在适配器中指定文本视图和复选框以及其他任何内容。
于 2012-11-22T01:59:26.277 回答
1
听起来您正在寻找的是 ListView 的多项选择模式。如果不知道这个短语,很难找到一个很好的例子,但这是另一个 SO 问题,其答案可能会对您有所帮助。
(在对话框中执行此操作与所选答案示例中的过程基本相同。)
于 2012-11-22T02:45:35.937 回答