0

J'utilise actuellement un ExpandableListView avec un EditText comme un élément enfant. Je veux mettre l'accent sur le EditText lorsque l'élément est développé et afficher automatiquement le clavier (cela s'est avéré être plus difficile que ce que j'attendais.) Je peux donner le focus au EditText (en utilisant ce message Focusable EditText inside ListView), mais le clavier est soit jamais montré ou il clignote puis se cache).Android ExpandView ListView avec EditText

La meilleure approche pour cela est-elle une ListView? Devrais-je plutôt envisager de créer des vues dynamiques à l'intérieur d'un LinearLayout d'un ScrollView?

Des suggestions/Idées?

+0

Regardez http://en.wikicode.org/index.php/Custom_ExpandableListView et http://www.techienjoy.com/android-expandable-list-dynamically-created-example.php vous obtiendrez l'indice –

+0

Merci Rstar, je vais essayer et vous le faire savoir. – Jacques

Répondre

0

Semble comme une autre vue autre que votre TextView reçoit le focus après que votre TextView reçoit le focus. Je voudrais déboguer en remplaçant les événements onFocus sur certaines vues et voir si elles sont touchées après votre TextView.

+0

Salut Nick, Je suis occupé à faire cela maintenant. Le problème est que la vue de création est appelée un million de fois pendant la durée de vie de ExpandableListView, et je suis sûr que quand tout est dit et fait, ExpandableListView récupère le focus. Ceci me laisse avec la question ...... pourquoi le clavier n'est pas montré pour une zone de texte avec le foyer? Et sur quel événement puis-je appeler manuellement le SoftInput? – Jacques

+0

Je me suis heurté à une situation dans laquelle ma zone de texte a été mise au point, mais elle n'affiche pas le clavier. De ce dont je me souviens quand j'ai débogué la source, le widget TextView a une logique qui attend une séquence d'événements tactiles down/up, et sur le haut appellera le InputMethodManager pour montrer le keyboad. J'ai eu un problème où l'événement up serait déclenché (je ne sais toujours pas pourquoi). Il semble que vous ayez un événement pour étendre votre rangée, donc à la fin de cela vous pouvez essayer d'invoquer manuellement le clavier. Également sur le ListView il y a une méthode setItemsCanFocus(), assurez-vous que c'est vrai. –