0

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 String 値が Edittext の新しい与えられた String で更新されていないことです。ここで私は間違っているので、私に提案してください。

4

2 に答える 2

1

私はあなたの問題の解決策を得ました。以下のコードを実装してみてください。

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

                }
            }
        });
    }
于 2012-11-08T08:55:40.700 に答える
1

setOnCheckedChangeListener は、onclick でラジオボタンの状態が変化したときに呼び出されます。false 状態になるかどうかを確認します。

edittextを初期化したことを確認してください

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

于 2012-11-08T07:49:19.070 に答える