简体   繁体   中英

Alert Dialog not able to dismiss in android

Hi I am using Alert dialog with listview it is working fine but when i click on list item i want to dismiss the dialog , but it is not working, Following is my snippet , can any one help me solve this.

 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();
    }

Try Something like

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();
}

OR

You can create custom dialog like below:

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();
}

Hope this help you...if you need any help you can ask

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();
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM