gpt4 book ai didi

android - 带有自定义适配器的多项选择 AlertDialog

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:18:06 26 4
gpt4 key购买 nike

我正在尝试创建一个带有多选选项的 AlertDialog。我试过 setMultiChoiceItems但我有一个ArrayList<Category>而不是 CharSequence所以我尝试使用适配器。

setAdapter 的问题是当我选择一个项目时它会关闭对话窗口。我想要的是选择项目,然后点击确定按钮以查看选择了哪些项目。

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Pick a color");
ArrayAdapter<Category> catsAdapter = new ArrayAdapter<Category>(this, android.R.layout.select_dialog_multichoice,this.categories);
builder.setAdapter(catsAdapter, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {

}
});
builder.setPositiveButton("Save", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//do something
}
});;

AlertDialog alert = builder.create();
alert.show();

最佳答案

不幸的是,似乎没有一种不调用 setMultiChoiceItems() 就可以打开 AlertDialog 的多选模式的简单方法。

但是,您可以设置一个适配器,然后在包含的 ListView 本身中打开多选模式。

final AlertDialog dialog = new AlertDialog.Builder(getActivity())
.setTitle("Title")
.setAdapter(yourAdapter, null)
.setPositiveButton(getResources().getString(R.string.positive), null)
.setNegativeButton(getResources().getString(android.R.string.cancel), null)
.create();

dialog.getListView().setItemsCanFocus(false);
dialog.getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
dialog.getListView().setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// Manage selected items here
System.out.println("clicked" + position);
CheckedTextView textView = (CheckedTextView) view;
if(textView.isChecked()) {

} else {

}
}
});

dialog.show();

关于android - 带有自定义适配器的多项选择 AlertDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10932832/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com