如果android中没有正面或负面按钮,如何删除列表对话框?

如果android中没有正面或负面按钮,如何删除列表对话框?,android,dialog,onitemclicklistener,dismiss,Android,Dialog,Onitemclicklistener,Dismiss,如果有任何列表项被击中,如何关闭此警报对话框?我一直在网上寻找解决方案,因为没有正面或负面按钮,我不知道如何访问要调用disclesh()的diologInterface对象 AlertDialog.Builder=新建AlertDialog.Builder(此); 建造商名称(“排序依据”); ListView sortByList=新的ListView(此); String[]listItems=getResources().getStringArray(R.array.sortByList

如果有任何列表项被击中,如何关闭此警报对话框?我一直在网上寻找解决方案,因为没有正面或负面按钮,我不知道如何访问要调用disclesh()的diologInterface对象

AlertDialog.Builder=新建AlertDialog.Builder(此);
建造商名称(“排序依据”);
ListView sortByList=新的ListView(此);
String[]listItems=getResources().getStringArray(R.array.sortByList);
ArrayAdapter modeAdapter=新的ArrayAdapter(此,
android.R.layout.simple_list_item_1,android.R.id.text1,
清单项目);
sortByList.setAdapter(modeAdapter);
builder.setView(sortByList.create().show();
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共位置(适配器视图、视图v、内部位置、,
长id){
//我想它如果这些项目中的任何一个点击删除对话框。
开关(pos){
案例0:
Log.d(“最近”、“被击中”);
打破
案例1:
日志d(“标题”,“被击中”);
打破
案例2:
Log.d(“作者”,“被击中”);
打破
}
}});
在此方面的任何帮助都将不胜感激

更换

builder.setView(sortByList).create().show();

然后,在
onItemClick
方法中,添加

dialog.dismiss();
其他解决方案(清洁剂imho) 您还可以使用
AlertDialog.Builder.setAdapter
,它使用适配器显示
列表视图,并使用侦听器通知您。在该侦听器中,您将收到一个可以忽略的对话框

builder.setAdapter(modeAdapter, new DialogInterface.OnClickListener(){
        @Override
        public void onClick(DialogInterface dialog, int which) {
            // ### Here you can dismiss the dialog
            dialog.dismiss(); 
            switch(which) {
                case 0:
                    Log.d("recent", "was hit");
                    break;
                case 1:
                    Log.d("title", "was hit");
                    break;
                case 2:
                    Log.d("author", "was hit");
                    break;
            }
        }
    }).create().show();
在某个时间点调用
builder.create()
(仅一次)以创建一个
最终警报对话框
您可以在
OnItemClickListener中关闭此对话框
dialog.dismiss();
builder.setAdapter(modeAdapter, new DialogInterface.OnClickListener(){
        @Override
        public void onClick(DialogInterface dialog, int which) {
            // ### Here you can dismiss the dialog
            dialog.dismiss(); 
            switch(which) {
                case 0:
                    Log.d("recent", "was hit");
                    break;
                case 1:
                    Log.d("title", "was hit");
                    break;
                case 2:
                    Log.d("author", "was hit");
                    break;
            }
        }
    }).create().show();