我正在使用以下代码在键盘上的完成和下一步按钮之间切换,具体取决于复选框是否被选中:
private OnClickListener checkBoxListener = new OnClickListener(){
@Override
public void onClick(View v) {
CheckBox cb = (CheckBox) findViewById(R.id.checkbox_referralCode);
EditText referralCode = (EditText) findViewById(R.id.referralCode);
EditText phoneText = (EditText) findViewById(R.id.phoneText);
if(cb.isChecked()) {
referralCode.setVisibility(View.VISIBLE);
phoneText.setImeOptions(0x00000005);
}
else
referralCode.setVisibility(View.GONE);
}
}; 最初未选中复选框时,phoneText 的键盘显示完成。当第一次选中该复选框时,接下来会显示 phoneText 的键盘。这正是我想要的。但是,我面临的问题是,当用户先选中复选框后取消选中复选框时,当我希望它显示完成时,键盘仍会显示下一个。为了纠正这个问题,我在 else 语句中添加了以下行:
phoneText.setImeOptions(0x00000006);
因此,我的新代码如下所示:
private OnClickListener checkBoxListener = new OnClickListener(){
@Override
public void onClick(View v) {
CheckBox cb = (CheckBox) findViewById(R.id.checkbox_referralCode);
EditText referralCode = (EditText) findViewById(R.id.referralCode);
EditText phoneText = (EditText) findViewById(R.id.phoneText);
if(cb.isChecked()) {
referralCode.setVisibility(View.VISIBLE);
phoneText.setImeOptions(0x00000005);
}
else {
referralCode.setVisibility(View.GONE);
phoneText.setImeOptions(0x00000006);
}
}
};
但是,现在 phoneText 的键盘只显示完成,即使复选框被选中或未选中。我应该怎么做才能纠正这个?