2013-02-01 1 views
1

Remarque: Je ne suis pas sûr de poser cette question ou devrais-je rouvrir la question précédente. Je signale cela parce qu'il est seulement lié à (version 4.2)Arrêter EditText de se concentrer au démarrage Actvity sur Nexus 7 - 4.2 version

Il semble que cette question de répéter encore une fois auparavant, il a été publié here, mais cette fois ce problème ne persiste sur Nexus7 (version 4.2)

Sinon, il est fonctionne bien sur toutes les autres versions jusqu'à 4.1.2 (testé même sur Nexus 4.1.2).

J'ai essayé/vérifié avec toutes les suggestions et possibilité posté here

Quelqu'un pourrait-il expliquer cette question et aussi s'il vous plaît fournir une solution pour cela. Merci

Répondre

0

Vous devriez probablement montrer du code parce que je ne sais pas si ce que je vais poster vous aidera ou non. Ce que j'ai remarqué dans 4.2 (SG4) mais pas dans les versions antérieures, c'est que EditText a obtenu un focus après onResume() lors de la création de l'activité. Ce problème ne s'est pas toujours produit mais semblait plus prévalent lorsque le clavier était ouvert et fermé dans l'activité.

Mon scénario - Deux zones EditText, appelons-les A et B, où A dans xml avait requestFocus>/requestFocus>. Les deux avaient onFocusListners. Après onCreate, A aurait un focus. Après onResume lors de la création, B aurait un focus. Aucune idée pourquoi. Les deux onFocusListners changeraient la disposition de l'écran et je voulais éviter les changements de focus à B prématurément.

Mon travail autour de - J'ai inséré un troisième EditText entre A et B en XML. Appelons-le Z. Z devait avoir la visibilité définie sur VISIBLE. Z devait également avoir un mannequin surFocusListner qui n'a rien fait. En cours d'exécution, Z a obtenu le focus. Pour revenir à A et supprimer Z de la mise en page, je devais faire ce qui suit: Dans onCreate, j'ai fait un postDelayed() sur la vue Z où dans la méthode run j'ai changé le focus sur A et mis la visibilité de Z à gone. Retardé 100ms. J'ai essayé onPostResume() au lieu de postDelayed() mais cela n'a pas fonctionné.