Si vous voulez effacer le focus par défaut sur le texte à éditer, utilisez les 2 attributs suivants
android:focusable="false"
android:focusableInTouchMode="true"
à l'intérieur de la disposition linéaire parent.
par exemple :
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="false"
android:focusableInTouchMode="true"
android:orientation="vertical">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="email id"
android:inputType="textEmailAddress"
android:maxLines="1"
/>
</LinearLayout>
Si vous souhaitez masquer le clavier lors de la création d'une activité, utilisez ces attributs à l'intérieur de la balise d'activité du fichier manifeste. par exemple :
<activity
android:configChanges="screenSize|orientation|keyboardHidden"
android:screenOrientation="portrait"
android:name=".activities.LoginActivity"
android:windowSoftInputMode="stateHidden|adjustResize"/>
Si vous souhaitez masquer le clavier lors d'un clic sur un bouton ou lors d'un événement quelconque, utilisez le code suivant
public void onClick(View v) {
try {
//InputMethodManager is used to hide the virtual keyboard from the user after finishing the user input
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm.isAcceptingText()) {
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
}
} catch (NullPointerException e) {
Log.e("Exception", e.getMessage() + ">>");
}
}
} catch (NullPointerException e) {
Log.e("Exception", e.getMessage() + ">>");
}
Si vous voulez retirer le focus des champs de texte à éditer après avoir quitté l'activité
@Override
protected void onResume() {
super.onResume();
mEmail.clearFocus();
mPassword.clearFocus();
}
Enfin, si vous souhaitez effacer les données des champs de texte lors de la soumission du formulaire, utilisez la fonction
@Override
protected void onResume() {
super.onResume();
mEmail.getText().clear();
mPassword.getText().clear();
}
0 votes
Définissez Android:focusable="false". Il n'y aura pas de focus sur votre EditText
2 votes
Qui rendra le champ inutilisable pour toujours ? maintenant, même si je clique sur le champ de texte, il ne se met pas en évidence. Je veux qu'il soit mis au point quand on clique dessus, mais pas automatiquement au démarrage de l'application.
1 votes
Vous pouvez d'abord commencer par obtenir l'id du bouton et mettre le focus sur le bouton dans votre code....
1 votes
J'ai fait ceci : a_button = (Button) findViewById(R.id.a_button) ; a_button.requestFocus() ; au début du code, mais cela n'a rien donné. Puis-je définir le focus par le biais de xml ?
4 votes
Ajout de
android:focusableInTouchMode="true"
sur mon structure parentale fonctionne pour moi.