こんにちは、画面に 2 つの編集テキスト ボックスがあります。編集テキストにフォーカスがある場合にのみ、横向きのサポートを有効にしています。ユーザーがソフトキーボードの完了ボタンを押したときに同じことを無効にします。ユーザーは最初の編集テキストに値を入力し、次のボタンを押します。次に、2番目の編集テキストに値を入力し、「完了」ボタンを押します。 2 番目の edittext.i から強制的にフォーカスを失うには、clearFocus() と button.requestFocus() を試しましたが、役に立ちませんでした。以下は私のコード スニペットです。
@Override
public boolean onEditorAction(TextView view, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEND
|| actionId == EditorInfo.IME_ACTION_DONE
|| actionId == EditorInfo.IME_ACTION_GO
|| event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
((Activity) context).setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
InputMethodManager imm = (InputMethodManager) context
.getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null)
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
return true;
}
return false;
}
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus)
((Activity) context).setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}
「完了」ボタンをクリックした後、ユーザーが 2 番目の編集テキストをクリックすると、コントロールが onFocusChange イベントに到達しません。私を助けてください