флажок не отображается внутри всплывающего окна в android - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь добавить всплывающее окно с флажком, и если флажок не отмечен, не должно быть возможности нажать да во всплывающем окне, и лучше, если во всплывающем окне появилось какое-то сообщение об ошибке. Моя попытка заключается в следующем.

    AlertDialog.Builder builder = new AlertDialog.Builder(EmptyActivity.this);
    builder.setTitle(R.string.app_name);
    builder.setMessage("Confirm for go?");
    final CharSequence[] items = {"Something to check before going "};
    final ArrayList selectedItems=new ArrayList();
    builder.setMultiChoiceItems(items, null, new DialogInterface.OnMultiChoiceClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which, boolean isChecked) {
            //Here you add or remove the items from the list selectedItems. That list will be the result of the user selection.
            if(isChecked) {
                selectedItems.add(which);
            }
        }
    });

    builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            dialog.dismiss();
            if(selectedItems.size() == 1) {
                //call going api
            }
            else{
                //show an error msg inside pop up to tick the checkbox and unable to click yes
            }
        }
    });
    builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            dialog.dismiss();
        }
    });
    AlertDialog alert = builder.create();
    alert.show();

всплывающее окно, как показано на рисунке ниже.

enter image description here

Я не мог видеть флажок внутри всплывающего окна, когда я запускаю его. Так кто-нибудь знает, где я ошибся? И как я должен показать сообщение об ошибке внутри всплывающего окна, чтобы сообщить пользователю, чтобы поставить галочку перед нажатием да?

1 Ответ

0 голосов
/ 19 февраля 2020
    private void showDialogue() {

            AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
            LayoutInflater inflater = this.getLayoutInflater();
            View dialogView = inflater.inflate(R.layout.custom_dashboard, null);
            dialogBuilder.setView(dialogView);
            final AlertDialog alertDialog = dialogBuilder.create();
            final CheckBox one = dialogView.findViewById(R.id.chk01);

            Button done = dialogView.findViewById(R.id.done);
            done.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (one.isChecked()) {
                  //do something
                }else{
 //do something               
}
            });
            alertDialog.show();


        }
...