我现在正在努力解决这个问题一天,我无法弄清楚如何解决它。
所以,我有一个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,这很容易解决,但我真的想在对话框中这样做。谢谢!
答案 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"
。