Как показать статус флажка в TextView при использовании AlertDialog

Как получить статус флажка в TextView при использовании AlertDialog.

Тем не менее я пытаюсь показать Проверено состояние CheckBox, но не получаю никакого значения ни True, ни False.

См. ниже скриншот,

введите здесь описание изображения

Код UploadActivity.java:

TextView tv1;
CheckBox chkIos;

   @Override
    public Dialog onCreateDialog(int id) {

        AlertDialog dialogDetails = null;
        switch (id) {
        case DIALOG_LOGIN:
            LayoutInflater inflater = LayoutInflater.from(this);
            View dialogview = inflater.inflate(R.layout.dialog_layout, null);
            AlertDialog.Builder dialogbuilder = new AlertDialog.Builder(this);
            dialogbuilder.setTitle("Image Information");
            dialogbuilder.setView(dialogview);
            dialogDetails = dialogbuilder.create();                 
            break;  
        }
        return dialogDetails;
    }

    @Override
    public void onPrepareDialog(int id, Dialog dialog) {
        switch (id) {
        case DIALOG_LOGIN:
        final AlertDialog alertDialog = (AlertDialog) dialog;
            Button loginbutton = (Button) alertDialog
                    .findViewById(R.id.btn_login);
            Button cancelbutton = (Button) alertDialog
                    .findViewById(R.id.btn_cancel);
            tv1 = (TextView) alertDialog
                    .findViewById(R.id.textView1);
            chkIos = (CheckBox) alertDialog
                    .findViewById(R.id.chkOption1);


            loginbutton.setOnClickListener(new View.OnClickListener() {
                @Override
                    public void onClick(View v) {
                    SaveData(); 
                    addListenerOnButton();
                }               

                private boolean SaveData() {                        

                    .............               
                    }
                    return true;
                }

                private String getHttpPost(String url,
                        List<NameValuePair> params) {

                    .............
                    }
                    return str.toString();
                }

            });

            cancelbutton.setOnClickListener(new View.OnClickListener() {
                @Override                   
                    public void onClick(View v) {                       

                    ...........
                }
            });          
        }
    }

public void addListenerOnButton() {                 
    chkIos.setOnClickListener(new OnClickListener() {

    @Override
     public void onClick(View v) {

        if (((CheckBox) v).isChecked()) 
            tv1.setText("True");
                else
            tv1.setText("False");
                }
            });
        }

person Sun    schedule 15.07.2013    source источник
comment
Я не понимаю ваш код, почему вы добавляете Listener в chkIos внутри onClick другой кнопки? Я имею в виду, что это не запрещено, но какой в ​​этом смысл?   -  person Vlad K.    schedule 15.07.2013


Ответы (4)


chekBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // TODO Auto-generated method stub
                if(isChecked==true){
                    status.setText("true");

                    }
                }else if(isChecked==false){
                    status.setText("false");
                }
            }
        });

EDIT чуть ниже этой строки

chkIos = (CheckBox) alertDialog.findViewById(R.id.chkOption1);

используйте мой код Также удалите

addListenerOnButton()

эта функция будет работать точно. Спасибо.

person TheLittleNaruto    schedule 15.07.2013

Вы устанавливаете onclickListener, когда нажимаете «Войти».

Переместите: addListenerOnButton(); за пределы кнопки входа в систему onClick

person Thijs Limmen    schedule 15.07.2013

Да, я согласен с @kumar, просто нужно вставить код kumar после этой строки:

 chkIos = (CheckBox) alertDialog.findViewById(R.id.chkOption1);

и удалите этот addListenerOnButton(), и все готово.. :)

person Android    schedule 15.07.2013

попробуйте реализовать setOnCheckedChangeListener флажка, я думаю, это подойдет

            CheckBox cb = (CheckBox) findViewById(R.id.CheckBox01);
            cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {

                public void onCheckedChanged(CompoundButton buttonView,
                        boolean isChecked) {
                     // TODO Auto-generated method stub
                     if (buttonView.isChecked()) {
                        //set textview value here as checked

                    }
                     else
                    {
                     //set textview value here as unchecked
                    }

                }
              });
person karan    schedule 15.07.2013