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