8
votes

Android: Clear Focus sur EditText lorsque l'activité commence

J'ai quelques paramètres de paramètres dans mon application. Une fois que l'activité obtient directement, elle se concentre directement sur EditText et j'ai utilisé le code suivant pour effacer les FOUCS.

 RelativeLayout focuslayout = (RelativeLayout) findViewById(R.id.RequestFocusLayout);
 focuslayout.requestFocus();


3 commentaires

Est-ce que la focus commence à commencer à nouveau ou revenir d'une autre activité?


Si revenez d'une autre activité, EditText se concentre.


essayez de donner android: windowsoftinputmode = "StateHidden" dans le fichier manifeste à cette activité


8 Réponses :


0
votes

Mettez le code pour supprimer la mise au point de votre méthode OnStart () et cela devrait fonctionner correctement.


0 commentaires

9
votes
  RelativeLayout focuslayout = (RelativeLayout) findViewById(R.id.RequestFocusLayout);
 focuslayout.requestFocus();

0 commentaires

5
votes

Si votre editext est un enfant de votre relativation, vous pouvez utiliser android: descendantFocusabilité code> pour demander la mise au point:

<RelativeLayout 
     android:id="@+id/RequestFocusLayout"
     android:focusable="true"
     android:layout_width="0px"
     android:layout_height="0px" 
     android:descendantFocusability="beforeDescendants" 
     android:focusableInTouchMode="true" />


0 commentaires

5
votes

J'ai utilisé la solution montrée dans cette page, mais cela n'a pas fonctionné. Ajoutez cet attribut à votre étiquette d'activité dans AndroidManifest: XXX

Cela fonctionne parfaitement.


0 commentaires

0
votes

Dans le fichier XML de layouche, spécifiez une image sur votre editext: xxx pré>

Suivant, ajoutez un auditeur d'action à votre editext dans le fichier Java de l'activité P>

mYourEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_GO) {
            // hide virtual keyboard
            InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(mYourEditText.getWindowToken(), 0);
            return true;
        }
        return false;
    }
});


0 commentaires

13
votes

En réalité, la vue première vue concentrée dans l'activité reçoit la mise au point initiale forte>. Si cela se trouve être votre editext code>, il sera initialement ciblé.

Si vous ne voulez pas que, voici vos options: p>

Focus un autre EM> View h3>

Identifiez par programmation sur quelle vue vous souhaitez donner la mise au point initiale. P>

<LinearLayout
    android:focusableInTouchMode="true"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <EditText
        ...


0 commentaires

4
votes

moi aidez vraiment seulement Android: focautintouchmode = "vrai" dans mon groupe de vision parent . .


0 commentaires

0
votes

Si lors du démarrage de l'activité, il se concentre sur EditText sur l'écran. Utilisez

android:focusableInTouchMode="true"


0 commentaires