0

アクティビティの発言MainActivityで、私はプログラムでフラグメントの発言を追加しましたFragment_1

これFragment_1には、を含むレイアウトがありますEditText。これを表示し始めるFragment_1と、EditTextフォーカスされますが、開かれてsoft keyboardいません

だから私はをクリックして、、、を開きEditTextます。これは、を含むものに置き換える必要があります。keyboardtype some textclick done buttonFragment_1Fragment_2EditText

しかし、これはそうEditTextFragment_2はありませんfocusedが、keyboardそれでもですopen(最後のせいかもしれませんFragment_1

だから私はこれを追加しましたFragment_2

EditText.requestFocus();

フォーカスはそこにあり、キーボードは開いていますが、EditTextクリックしているキー文字が入力されていません。

なんでそうなの?

ありがとうございました。

4

2 に答える 2

1

最初のフラグメントの最初の編集テキストのキーボードを非表示にする必要があります

private InputMethodManager mInputMethodManager = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
EditText.clearFocus();
mInputMethodManager.hideSoftInputFromWindow(EditText.getWindowToken(), 0);

そして、フォーカスを要求して、2番目の編集テキストのキーボードを表示する必要があります。

EditText.requestFocus();
mInputMethodManager.showSoftInput(EditText, 0);
于 2012-09-28T11:47:59.720 に答える
0

EditText入力メソッドマネージャーは、とその両方にあるウィンドウにフォーカスがない限り、キーボード要求を無視します。したがって、Activity/を入力Dialogしたら、キーボードを要求する前に、フォーカスが落ち着くまで待つ必要があります。InputMethodManagerこれを行うには、でサービスを呼び出しますOnFocusChangeListenerが、ビューはウィンドウ自体よりも先にフォーカスを取得できるため、ウィンドウのフォーカスを待つ必要があります。OnFocusChangeListenerWindowオブジェクト自体にを追加する方法はありませんが、Viewフォーカスをリッスンし、Runnableを投稿することは機能しているようです。

ここで美しい分析を見てください

于 2014-02-28T10:06:20.053 に答える