单选按钮setOnCheckedChangeListener时无法获取EditText值

时间:2012-11-08 07:44:55

标签: android radio-button android-edittext

我希望在单选按钮EditText时在字符串中获取setOnCheckedChangeListener(false)值,并且这样做

String  strmusic = "MyString";
EdiText interst_edt;

rdbtn_music.setOnCheckedChangeListener(new OnCheckedChangeListener() {          
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {            

                if(rdbtn_music.isChecked()){                            
                    interst_edt.setText(strmusic.toString());
                    Log.i("HotSpot", "Interest strmusic values-"+strmusic +""+isChecked);                       
                }else{
                     strmusic = interst_edt.getText().toString();                   
                    Log.i("HotSpot", "Interest strmusic values-"+strmusic +""+isChecked);
                }
            }
        });

但是问题是`strmusic字符串值没有使用Edittext中的新给定字符串更新,我做错了请抽取我。

2 个答案:

答案 0 :(得分:1)

当onclick中的radiobutton状态发生变化时,将调用setOnCheckedChangeListener。检查它是否处于false状态。

并确保您对您的编辑文字进行了初步化

EdiText interst_edt =(EditText)findViewById(R.id.edittext);

答案 1 :(得分:1)

我得到了你的问题的解决方案。尝试在Code下面执行。

    RadioButton radioButton;
    EditText editText;

    String strmusic = "MyString";
    boolean BOOL = false;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        radioButton = (RadioButton) findViewById(R.id.radioButton1);
        editText = (EditText) findViewById(R.id.editText1);


        radioButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                if(v.getId()==radioButton.getId() && BOOL){
                    radioButton.setChecked(false);
                }else{
                    BOOL=true;
                }
            }
        });

        radioButton.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            public void onCheckedChanged(CompoundButton buttonView,
                    boolean isChecked) {

                Log.i("HotSpot", "Interest strmusic values- Before" + strmusic
                        + "" + isChecked);
                if (isChecked) {
                /*  Log.i("HotSpot", "Inside true");
                    editText.setText(strmusic.toString());
                    strmusic = editText.getText().toString();
                    buttonView.setChecked(false);
                    Log.i("HotSpot", "Interest strmusic values-" + strmusic
                            + "" + isChecked);*/
                    BOOL=false;
                } else {
                    Log.i("HotSpot", "Inside False");
                    strmusic = editText.getText().toString();
                    Log.i("HotSpot", "After Radio Button False Value of strmusic:" + strmusic
                            + "");
//                  buttonView.setChecked(true);

                }
            }
        });
    }