0
我有兩個EditText框和一個包含兩個單選按鈕的RadioGroup。當我開始在任何一個編輯文本框中輸入輸入時,所有的單選按鈕都必須自動關閉(如果任何一個按鈕已經被選中)並且另一個edittext也應該被清除。如果我檢查任何兩個單選按鈕,則應清除所有編輯文本框(如果他們有任何輸入數據)。這是我迄今爲止所做的。Editext和RadioButton android
裏面的OnCreate():
et1 = (EditText)findViewById(R.id.editText1);
et1.setOnFocusChangeListener(this);
et1.addTextChangedListener(this);
et2 = (EditText)findViewById(R.id.editText2);
et2.setOnFocusChangeListener(this);
et2.addTextChangedListener(this);
radioButton1 = (RadioButton)findViewById(R.id.rb1);
radioButton2 = (RadioButton)findViewById(R.id.rb2);
RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener(){
public void onCheckedChanged(RadioGroup group, int checkedId) {
et1.setText("");
et2.setText("");
}
});
而且......
@Override
public void onFocusChange(View v, boolean hasFocus) {
switch (v.getId()) {
case R.id.editText1:
whoHasFocus = 1;
break;
case R.id.editText2 :
whoHasFocus = 2;
break;
}
}
而且
@Override
public void afterTextChanged(Editable edt) {
if(whoHasFocus == 1){
String enteredName1 = edt.toString().trim();
if(enteredName1.length() == 1){
if(et2.getText().toString().trim().length() >= 1)
et2.setText("");
radioButton1.setChecked(false);
radioButton2.setChecked(false);
}
}else if(whoHasFocus == 2){
String enteredName2 = edt.toString().trim();
if(enteredName2.length() == 1){
if(et1.getText().toString().trim().length() >= 1)
et1.setText("");
radioButton1.setChecked(false);
radioButton2.setChecked(false);
}
}
}
當我檢查任何單選按鈕,然後在開始輸入的EditText,單選按鈕越來越未經檢查,但沒有任何內容是第一次進入edittext。如果我輸入下一個字母,那麼它會輸入第二個字母,然後再正常工作。但是當選中單選按鈕時,第一個字母不會被輸入到endittext中。請幫幫我。哪裏出錯了?
那是因爲你調用setChecked(假的),因此onCheckedChanged被調用,因此您的EditText被清除。 – njzk2 2013-02-12 07:46:30
謝謝..我該如何解決這個問題? – user1670443 2013-02-12 09:22:47
quick&dirty:在setChecked(false)之後,執行et .setText(enteredName ); (是1或2) –
njzk2
2013-02-12 09:50:57