【问题标题】:Could not get EditText values when Radio button setOnCheckedChangeListener单选按钮 setOnCheckedChangeListener 时无法获取 EditText 值
【发布时间】:2012-10-28 09:20:21
【问题描述】:

我想在单选按钮setOnCheckedChangeListener(false) 时获取字符串中的EditText 值并这样做

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 values not Updated with new given String in Edittext,我做错了,请指教。

【问题讨论】:

  • 我有编辑文本和单选按钮都启动良好

标签: android radio-button android-edittext


【解决方案1】:

当onclick中单选按钮的状态改变时会调用setOnCheckedChangeListener..检查它是否进入false状态。

并确保你初始化了你的编辑文本

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

【讨论】:

  • 在这种情况下,您是否从除 rdbtn_music.isChecked() 之外的任何其他位置更新 edittext 值?
  • 之后如果你从真实状态更新...它会将“MyString”设置为strmusic。
  • MyString 其 Json 数据样本
  • 它设置为 EditText,然后我想更新 EditText 值并希望得到那个字符串
【解决方案2】:

我得到了您的问题的解决方案。尝试执行以下代码。

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

                }
            }
        });
    }

【讨论】:

  • @ankitmakvana:你有你的解决方案吗?
猜你喜欢
  • 2019-10-05
  • 2013-06-14
  • 1970-01-01
  • 2021-08-15
  • 2020-07-14
  • 2015-03-06
  • 2023-03-22
  • 2014-12-05
  • 1970-01-01
相关资源
最近更新 更多