Android 如何使用自定义视图显示单选AlertDialog?

Android 如何使用自定义视图显示单选AlertDialog?,android,listview,android-alertdialog,Android,Listview,Android Alertdialog,我需要使用单个选项创建自定义AlertDialog,但没有单选按钮,每个项目中有两个自定义文本视图。我已尝试使用AlertDialog: ArrayList<HashMap<String,String>> items=new ArrayList<HashMap<String,String>>(); //..here I fill my ArrayList SimpleAdapter simpleAdapter=new SimpleAdapter(t

我需要使用单个选项创建自定义AlertDialog,但没有单选按钮,每个项目中有两个自定义文本视图。我已尝试使用AlertDialog:

ArrayList<HashMap<String,String>> items=new ArrayList<HashMap<String,String>>();
//..here I fill my ArrayList
SimpleAdapter simpleAdapter=new SimpleAdapter(this, items, R.layout.list_item, new String[] {"name","count"}, new int[] {R.id.name,R.id.count});

AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this);
alert.setSingleChoiceItems(simpleAdapter, -1, new OnClickListener() {
    @Override
    public void onClick(DialogInterface arg0, int arg1) {
        //Here I handle click
    }});
alert.show();
ArrayList items=new ArrayList();
//…我在这里填写我的列表
simpledapter simpledapter=new simpledapter(this,items,R.layout.list_item,新字符串[]{“name”,“count”},新int[]{R.id.name,R.id.count});
AlertDialog.Builder alert=新建AlertDialog.Builder(MainActivity.this);
alert.setSingleChoiceItems(simpleAdapter,-1,新的OnClickListener(){
@凌驾
公共void onClick(对话框接口arg0,int arg1){
//这里我处理点击
}});
alert.show();
但它不会在点击项目后关闭。为什么?也许我能修好它

或者,我尝试使用Dialog:

ArrayList<HashMap<String,String>> items=new ArrayList<HashMap<String,String>>();
//..here I fill my ArrayList
SimpleAdapter simpleAdapter=new SimpleAdapter(this, items, R.layout.list_item, new String[] {"name","count"}, new int[] {R.id.name,R.id.count});

Dialog dialog = new Dialog(this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);

View view=LayoutInflater.from(this).inflate(R.layout.items_list, null);
ListView listView=(ListView) view.findViewById(R.id.list_view);
listView.setAdapter(simpleAdapter);
listView.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
        //Here I handle click
        dialog.dismiss();
    }});

dialog.setContentView(view);
dialog.show();
ArrayList items=new ArrayList();
//…我在这里填写我的列表
simpledapter simpledapter=new simpledapter(this,items,R.layout.list_item,新字符串[]{“name”,“count”},新int[]{R.id.name,R.id.count});
Dialog=新建对话框(此对话框);
对话框.requestWindowFeature(窗口.FEATURE\u无\u标题);
dialog.getWindow().setLayout(LayoutParams.MATCH_父级,LayoutParams.WRAP_内容);
视图=LayoutFlater.from(this).充气(R.layout.items\u list,null);
ListView=(ListView)view.findViewById(R.id.list\u视图);
setAdapter(simpleAdapter);
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(适配器视图arg0、视图arg1、内部位置、长arg3){
//这里我处理点击
dialog.dismise();
}});
setContentView(视图);
dialog.show();
但它在样式和文本显示方面存在问题(文本颜色与背景颜色一致)

我想这对我来说是最好的。但是怎么做呢

但它不会在点击项目后关闭。为什么?也许我能修好它

默认情况下,该方法不会关闭对话框,因此必须手动关闭。为此,您只需将
onClick
回调(表示对话框本身)的
DialogInterface
参数转换为
对话框
,并使用
dismise()
方法:

((Dialog) arg0).dismiss();

设置SingleChoiceItems
方法的文档中:。。。。单击列表中的某个项目不会关闭对话框。。。哦。。。但是如何实现它呢?
((Dialog)arg0).disclose()