2010-11-09 6 views
0

mon actvity a 2 vues. Cela signifie que j'utilise 2 fichiers .xml dans une classe java.problème avec le clavier virtuel en android

 first_view.xml 
     second_view.xml 

La première vue (first_view.xml) contient un EditText et un bouton de sauvegarde. lorsque je clique sur EditText, le clavier virtuel est affiché sur la vue et je peux y entrer une valeur. Dans onClick() du bouton de sauvegarde, je veux afficher la deuxième vue. (Cela signifie les détails de la valeur d'enterd). Donc, j'utilise 'setContentView (R.layout.second_view);' sur le onClick() du bouton Enregistrer.

Mon problème est que la deuxième vue arrive correctement, mais le clavier virtuel est toujours affiché sur la vue. J'utilise LinearLayout en deuxième vue, et définissez sa hauteur et sa largeur comme "fill_parent". mais je ne peux pas résoudre le problème.

J'espère que vous comprenez la question .. S'il vous plaît aidez-moi ... Merci ...

Répondre

0

@Miya Je vous suggère de jeter un coup d'oeil @ ce fil Close/hide the Android Soft Keyboard & utiliser cette

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0); 

& vous avez terminé!

1

Je pense que vous n'êtes pas vraiment censé appeler setContentView() pour modifier l'interface utilisateur après avoir chargé & l'activité créée. Si vous avez l'intention de modifier l'interface utilisateur, envisagez un LayoutInflater: http://developer.android.com/reference/android/view/LayoutInflater.html

Et si vous ajoutez une autre activité, appelez-la simplement? Cela vous épargnera beaucoup de problèmes à long terme, comme la libération de la mémoire et ainsi de suite. Si vous avez l'intention de remplacer l'activité en cours par la nouvelle, pensez à appeler le finish() avant d'appeler le nouveau.

Questions connexes