具有多个选项和自定义视图的对话框

时间:2011-10-25 15:05:22

标签: android android-adapter android-dialog

我现在正在努力解决这个问题一天,我无法弄清楚如何解决它。

所以,我有一个AlertDialog,我想在其中显示要选择的项目列表。这些项目必须具有多个文本视图,因此我不能依赖于使用默认格式的简单setMultiChoiceItems()构建器。

我在这里使用我的自定义ArrayAdapter:

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Choose details to display");
builder.setAdapter(new ContactAdapter(this, 0, items), null);

我以为我可以使用OnClickListener作为setAdapter的第二个参数,但在选择一个选项后会关闭对话框。

尝试解决此问题时,我在获取行布局时在我的ContactsAdapter中添加了setOnClickListener(),如下所示:

LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.contact_row, null);
view.setOnClickListener(new OnClickListener() {....}

这很有效,但是当我点击一行时,我停止获得突出显示,这是我真的不想要的。

任何想法如何解决这个问题?我知道我可以使用ListActivity,这很容易解决,但我真的想在对话框中这样做。谢谢!

1 个答案:

答案 0 :(得分:2)

如果您认为使用ListActivity很容易,那么为什么不这样做并使用setTheme(android.R.style.Theme_Dialog)android:theme="@android:style/Theme.Dialog"对话框主题来处理应用程序清单中的Activity?

如果您的目标是Honeycomb或Ice Cream Sandwich(Android 3.0+),则称为setTheme(android.R.style.Theme_Holo_Dialog)android:theme="@android:style/Theme.Holo.Dialog"