在android中无法关闭警报对话框

在android中无法关闭警报对话框,android,listview,android-alertdialog,dismiss,Android,Listview,Android Alertdialog,Dismiss,您好,我正在使用带有listview的警报对话框,它工作正常,但当我单击列表项时,我想取消该对话框,但它不工作,下面是我的代码段,有人能帮我解决这个问题吗 public void setdailog() { final AlertDialog.Builder dialog = new AlertDialog.Builder(getActivity()); // dialog.setContentView(R.layout.alert_list_radio

您好,我正在使用带有listview的警报对话框,它工作正常,但当我单击列表项时,我想取消该对话框,但它不工作,下面是我的代码段,有人能帮我解决这个问题吗

 public void setdailog()
    {
        final AlertDialog.Builder dialog = new AlertDialog.Builder(getActivity());
        // dialog.setContentView(R.layout.alert_list_radio);
        dialog.setTitle("Select Language");
        View customView = LayoutInflater.from(getActivity()).inflate(
                R.layout.alert_list, null, false);
        ListView listView = (ListView) customView.findViewById(R.id.listiview_lang);
        AlertListAdapter mAdapter = new AlertListAdapter(langList, getActivity());
        listView.setAdapter(mAdapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                SELECTED_LANGUAGE = langList.get(position).getLangid();
                System.out.println("JO JO"+SELECTED_LANGUAGE);
               dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
                    @Override
                    public void onDismiss(DialogInterface dialog) {
                        dialog.dismiss();
                    }
                });
            }
        });
        listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
        dialog.setView(customView);
        dialog.show();
    }
public void setdailog()
{
final AlertDialog.Builder dialog=新建AlertDialog.Builder(getActivity());
//setContentView(R.layout.alert\u list\u radio);
对话框.setTitle(“选择语言”);
View customView=LayoutFlater.from(getActivity())。充气(
R.layout.alert_list,null,false);
ListView ListView=(ListView)customView.findViewById(R.id.listiview_lang);
AlertListAdapter mAdapter=新的AlertListAdapter(langList,getActivity());
setAdapter(mAdapter);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
选择的_LANGUAGE=langList.get(position.getLangid();
System.out.println(“JO JO”+所选语言);
dialog.setOnDismissListener(新的DialogInterface.OnDismissListener(){
@凌驾
公共void onDismiss(对话框接口对话框){
dialog.dismise();
}
});
}
});
listView.setChoiceMode(listView.CHOICE\u MODE\u SINGLE);
对话框.setView(自定义视图);
dialog.show();
}
试试下面的方法

public void setdailog()
{
    final AlterDialog alert;
    final AlertDialog.Builder dialog = new AlertDialog.Builder(getActivity());
    // dialog.setContentView(R.layout.alert_list_radio);
    dialog.setTitle("Select Language");
    View customView = LayoutInflater.from(getActivity()).inflate(
            R.layout.alert_list, null, false);
    ListView listView = (ListView) customView.findViewById(R.id.listiview_lang);
    AlertListAdapter mAdapter = new AlertListAdapter(langList, getActivity());
    listView.setAdapter(mAdapter);
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            SELECTED_LANGUAGE = langList.get(position).getLangid();
            System.out.println("JO JO"+SELECTED_LANGUAGE);
         //  dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
            //    @Override
            //    public void onDismiss(DialogInterface dialog) {
            //        dialog.dismiss();
            //    }
            if (alert != null && alert.isShowing()) {
                alert.dismiss();
               }
            });
        }
    });
    listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
    dialog.setView(customView);
    alert = dialog.create();
   alert.show();
}
public void setdailog()
{
最终警报;
final AlertDialog.Builder dialog=新建AlertDialog.Builder(getActivity());
//setContentView(R.layout.alert\u list\u radio);
对话框.setTitle(“选择语言”);
View customView=LayoutFlater.from(getActivity())。充气(
R.layout.alert_list,null,false);
ListView ListView=(ListView)customView.findViewById(R.id.listiview_lang);
AlertListAdapter mAdapter=新的AlertListAdapter(langList,getActivity());
setAdapter(mAdapter);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
选择的_LANGUAGE=langList.get(position.getLangid();
System.out.println(“JO JO”+所选语言);
//dialog.setOnDismissListener(新的DialogInterface.OnDismissListener(){
//@覆盖
//公共void onDismiss(对话框接口对话框){
//dialog.dismise();
//    }
if(alert!=null&&alert.isShowing()){
警惕。解散();
}
});
}
});
listView.setChoiceMode(listView.CHOICE\u MODE\u SINGLE);
对话框.setView(自定义视图);
alert=dialog.create();
alert.show();
}

您可以创建自定义对话框,如下所示:

public void setdailog()
{

  Dialog  cpDialog = new Dialog(getActivity());
    cpDialog.setTitle("Select Language");
    cpDialog.setContentView(R.layout.alert_list);

    ListView listView = (ListView) cpDialog.findViewById(R.id.listiview_lang);
    AlertListAdapter mAdapter = new AlertListAdapter(langList, getActivity());
    listView.setAdapter(mAdapter);
    listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            cpDialog.dismiss();

            }
        });
    cpDialog.show();
}
public void setdailog()
{
Dialog cpDialog=新建对话框(getActivity());
cpDialog.setTitle(“选择语言”);
cpDialog.setContentView(R.layout.alert_列表);
ListView ListView=(ListView)cpDialog.findViewById(R.id.listiview_lang);
AlertListAdapter mAdapter=新的AlertListAdapter(langList,getActivity());
setAdapter(mAdapter);
listView.setChoiceMode(listView.CHOICE\u MODE\u SINGLE);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
cpDialog.discouse();
}
});
cpDialog.show();
}
希望这对您有所帮助…如果您需要任何帮助,可以询问

public void setdailog()
public void setdailog()
    {
        AlertDialog.Builder dialog = new AlertDialog.Builder(getActivity());
        // dialog.setContentView(R.layout.alert_list_radio);
        dialog.setTitle("Select Language");
        dialog.setView(customView);
        View customView = LayoutInflater.from(getActivity()).inflate(
                R.layout.alert_list, null, false);

        ListView listView = (ListView) customView.findViewById(R.id.listiview_lang);
        AlertListAdapter mAdapter = new AlertListAdapter(langList, getActivity());
        listView.setAdapter(mAdapter);

        final AlertDialog dialogOne = dialog.create();  

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                SELECTED_LANGUAGE = langList.get(position).getLangid();
                System.out.println("JO JO"+SELECTED_LANGUAGE);
               dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
                    @Override
                    public void onDismiss(DialogInterface dialog) {
                        dialogOne.dismiss();
                    }
                });
            }
        });
        listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

        dialog.show();
    }
{ AlertDialog.Builder dialog=新建AlertDialog.Builder(getActivity()); //setContentView(R.layout.alert\u list\u radio); 对话框.setTitle(“选择语言”); 对话框.setView(自定义视图); View customView=LayoutFlater.from(getActivity())。充气( R.layout.alert_list,null,false); ListView ListView=(ListView)customView.findViewById(R.id.listiview_lang); AlertListAdapter mAdapter=新的AlertListAdapter(langList,getActivity()); setAdapter(mAdapter); final AlertDialog dialogOne=dialog.create(); setOnItemClickListener(新的AdapterView.OnItemClickListener(){ @凌驾 public void onItemClick(AdapterView父对象、视图、整型位置、长id){ 选择的_LANGUAGE=langList.get(position.getLangid(); System.out.println(“JO JO”+所选语言); dialog.setOnDismissListener(新的DialogInterface.OnDismissListener(){ @凌驾 公共void onDismiss(对话框接口对话框){ dialogOne.disclose(); } }); } }); listView.setChoiceMode(listView.CHOICE\u MODE\u SINGLE); dialog.show(); }
您如何调用
setdailog()
?在fab按钮的click Listener上有崩溃堆栈吗?没有,没有崩溃太多错误,甚至没有经过编辑的拼写..可以吗elaborate@Nilima你能解释一下你会犯哪些错误吗?嗨,我需要一个帮助嗨。。我能为您效劳吗?