2017-08-14 13 views
1

スタックに2つのフラグメントがあり、どちらもEditTextを含んでいます。 (赤のEditTextは下のフラグメントからのものです)Android - 次のボタンが機能しない

ソフトキーボードの[次へ]ボタンをクリックすると、カーソルは2番目の編集テキストに移動する必要がありますが、その代わりに下部のフラグメントEditTextにジャンプします。

'fragmentManager.replace(new TopFragment())'を使用すると、スタックにフラグメントが1つしかないので、問題はなく、カーソルは2番目のEditTextに移動します。

'fragmentManager.replace(...)'は解決策ではありません。下のフラグメントのコールバックがあります。あなたは何ができるか

enter image description here

+2

あなたの質問を明確にしてください、私は何かを理解して傾けます。 – Ivan

+0

質問は本当に不明です。何も理解できません! –

+0

1とは何ですか? 2? 3? – Pnemonic

答えて

2

(私はお勧めしませんこれは)最初のEditTextでプレスを入力して、フラグメント間の話または第二のフラグメントののEditText変数をエクスポートするインタフェースを使用してのいずれかの方法でrequestFocus()をキャッチすることです

例:

yourEditTextFragment1.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
     @Override 
     public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
      if (actionId == EditorInfo.IME_NULL 
       && event.getAction() == KeyEvent.ACTION_DOWN) { 
       // User pressed enter tell fragment 2 to requestFocus() 
       // on it's EditText :) 
      } 
      return true; 
     } 
    }); 
+0

素晴らしい!私はこのスニペットにnextEditText.requestFocus()を追加しました。期待されるeditTextのフォーカスを強制します – itzhar

+0

アプリケーションの周りの他の場所で使用できるように、他のフラグメントが存在することを確認してください... – MaTriXy

+0

@itzhar私は助けてくれました。答えとしてmsgを設定できますか? ;) –

関連する問題