2017-08-14 2 views
1

J'ai 2 fragments dans la pile, les deux contiennent EditTexts. (Le texte EditTexts rouge provient du fragment inférieur)Android - Le bouton Suivant ne fonctionne pas

Lorsque je clique sur le bouton "Suivant" du clavier virtuel, le curseur doit passer au 2ème texte d'édition, mais au lieu de cela, il saute au fragment EditText inférieur. Si j'utilise 'fragmentManager.replace (new TopFragment())', il n'y a qu'un seul fragment dans la pile, il n'y a pas de problème et le curseur se déplace vers le 2nd EditText. 'FragmentManager.replace (...)' n'est pas une solution, j'ai un rappel pour le fragment inférieur.

enter image description here

+2

S'il vous plaît préciser votre question, je ne comprends rien. – Ivan

+0

question est vraiment peu claire. Pas capable de comprendre quoi que ce soit! –

+0

qu'est-ce que c'est? 2? 3? – Pnemonic

Répondre

2

Ce que vous pouvez faire est de prendre l'entrer dans la presse dans la première EditText et requestFocus() soit en utilisant une interface pour parler entre les fragments ou exporter la variable de EditText de la fragment de la deuxième (que je ne recommande pas)

exemple:

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

Super! J'ai ajouté nextEditText.requestFocus() à cet extrait. et il force le focus pour le editText attendu – itzhar

+0

Assurez-vous de vérifier que l'autre fragment est présent car ils peuvent être utilisés dans d'autres endroits autour de l'application ... – MaTriXy

+0

@itzhar heureux J'ai aidé, pouvez-vous définir mon msg comme réponse? ;) –