J'ai 2 EditText
( myEditText1
et myEditText2
)
Et j'ai besoin de toucher myEditText1
1. Faites des affaires [Aucun problème ici et les affaires requises ont été appliquées]
2. Ensuite, demandez le focus sur myEditText2
[Pas de chance? ]
myEditText2.requestFocus();
J'essaye des solutions comme suivre les essais
Mais pas de chance et concentrez-vous toujours sur myEditText1
final EditText myEditText1 = (EditText) findViewById(R.id.myEditText1); final EditText myEditText2 = (EditText) findViewById(R.id.myEditText2); // ... myEditText1.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { // My business when myEditText1 touched [ OK ] // ... // TODO // Need to request focus to another EditText myEditText2 ? return false; } });
Questions connexes
Focus de la requête EditText
Changer le focus pour EditText Android
4 Réponses :
Cela peut être dû au clavier. Vous pouvez essayer
myEditText2.requestFocus(); InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(myEditText2, InputMethodManager.SHOW_IMPLICIT);
Cela fonctionne pour moi
Vous pouvez définir un OnClickListener
sur votre texte d'édition comme ceci:
this.editText1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //your code editText2.requestFocus(); } });
Faites simplement attention à un cas particulier
onClick () n'est pas appelé lorsque le EditText n'a pas le focus
Et vous pouvez trouver des détails sur ce cas dans le fil de questions suivant
L'événement onClick ne se déclenche pas | Android
Je recommanderais d'utiliser TextWatcher, plutôt que d'utiliser des conditions pour savoir quand votre entreprise est terminée
essayez ceci:
myEditText1.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void afterTextChanged(Editable s) { if(myEditText1.getText().length() > 3){ myEditText2.requestFocus(); } } });
vous pouvez essayer ceci
requestFocus(myEditText2);
et utiliser comme,
public void requestFocus(View view) { if (view.requestFocus()) { getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); } }
Essayez également de supprimer le focus de la modification de texte1
vous pouvez également essayer ceci
myEditText1.setImeOptions (EditorInfo.IME_ACTION_NEXT);