次のコードを使用して、チェックボックスがオンになっているかどうかに応じて、キーボードの完了ボタンと次のボタンを交互に使用しています。
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 のキーボードは完了としか表示されません。これを修正するにはどうすればよいですか?