4

ラジオボタンの変更イベントに基づいて2つのEditText txtPassword、txtEmailがあります。txtPasswordフィールドを非表示にして表示するだけです。ImeOptionsをプログラマチックに変更したいだけで、次のコードを書きました。

txtPassword.setImeOptions(EditorInfo.IME_ACTION_DONE);
txtEmail.setImeOptions(EditorInfo.IME_ACTION_NEXT); 
しかし、これは機能していません。ソフトキーボードを観察すると、これはtxtEmailでアクションを実行したことを示しています(ラジオが変更される前にtxtEmailのみが表示されるため、自動完了が表示されます)が、パスワードフィールドに手動でフォーカスした後、電子メールフィールドでソフトキーボードを観察すると、自動で変更されました次のimeOptionsでそれ。1つのtxtEmailがimeOptionsを実行したよりも表示され、txtPassword、txtEmailの両方がtxtEmailよりも表示され、次にImeOptionsがあり、txtPasswordで表示が行われた場合に必要です。前もって感謝します。

編集:

radiologin.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(RadioGroup group,int checkedId) {
// checkedId is the RadioButton selected
if (checkedId == R.id.radioWithoutPassword) {
txtPassword.setVisibility(View.GONE);
txtEmail.setBackgroundDrawable(getResources().getDrawable(R.drawable.both_corner));
txtEmail.setImeOptions(EditorInfo.IME_ACTION_DONE);
}
else
{
txtEmail.setImeOptions(EditorInfo.IME_ACTION_NEXT);
txtPassword.setImeOptions(EditorInfo.IME_ACTION_DONE);
txtPassword.setVisibility(View.VISIBLE);
txtEmail.setBackgroundDrawable(getResources().getDrawable(R.drawable.top_corner));
}
}
});

4

2 に答える 2