【发布时间】:2019-02-16 19:29:33
【问题描述】:
我基本上是在设置信息收集活动。它有一个用于性别选择和编辑姓名和年龄文本的广播组。
我已经为单选组实现了 onCheckedChangeListener 和为编辑文本实现了 textChangedListener,这样只有在两个文本都被填充并且单选按钮被选中时,下一个按钮才会启用。但是,它仅在选中单选按钮然后填充文本时才有效,而不是其他方式。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.basic_info);
nameTxt = findViewById(R.id.name);
ageTxt = findViewById(R.id.age);
nextBtn = findViewById(R.id.next);
nextBtn.setEnabled(false);
gender = findViewById(R.id.gender);
nameTxt.addTextChangedListener(watcher);
ageTxt.addTextChangedListener(watcher);
gender.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
onChecked = true;
}
});
}
private final TextWatcher watcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after)
{ }
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{}
@Override
public void afterTextChanged(Editable s) {
if (nameTxt.getText().toString().length() == 0 || ageTxt.getText().toString().length() == 0 || onChecked == false) {
nextBtn.setEnabled(false);
} else {
nextBtn.setEnabled(true);
}
}
};
我希望两个听众独立工作(以任何顺序进行都会产生相同的结果)。我在这里可能错了,因为我对 Android Studio 比较陌生。
【问题讨论】:
标签: android button radio-group oncheckedchanged