J'écris une application de numérotation téléphonique pour Android. J'ai créé une mise en page pour le clavier, qui contient un TextView et 10 boutons. Les boutons sont en tant que touches de 10 chiffres (0 à 9) et TextView permettent d'afficher le numéro en fonction des touches enfoncées. P>
Dans mon application, je suis ajouté au texte ("0" ou "1", etc.) sur TextView pour chaque bouton enfoncé. Si j'ai appuyé sur les boutons S'il vous plaît aidez-moi à ce sujet. P>
5 Réponses :
Veuillez vérifier le changement d'orientation, sur la méthode Créer une méthode, ce qui nécessite que toutes les vues soient créées à nouveau, vous devez donc utiliser l'une des méthodes suivantes:
Utilisez simplement le drapeau suivant True dans votre fichier manifeste dans la balise d'activité Android: configchange = "KeyboardHésditéDonnée | Orientation". comme ci-dessous: p>
La raison en est due à Android détruisant essentiellement l'activité et la créant à nouveau chaque fois que vous faites pivoter l'appareil. Ceci est principalement destiné à autoriser différentes mises en page basées sur le mode portrait / paysage. p>
Le meilleur moyen de gérer cela est de stocker toutes les données dont vous avez besoin pour conserver dans l'activité Bundle , en répondant à l'événement OnSaveDinstance (appelé juste avant que Android détruit l'activité), puis réapplique ceux de l'événement Standard Oncreate. p>
Bien que vous pouvez EM> Ajouter "Orientation" à la propriété Configchanges, gardez à l'esprit que vous dites essentiellement à Android que vous allez gérer tout ce qui concerne l'orientation changer vous-même - y compris la modification de la disposition , etc. p>
Qu'est-ce que @jeet recommandé n'a pas fonctionné pour moi. Je devais ajouter "Screensize". C'est la ligne que vous devez ajouter votre manifeste.xml dans le noeud Ainsi, le nœud complet peut ressembler à ceci: p>
Ajouter Screensize CODE> Le truc! Débogué le problème pendant plusieurs heures et enfin ici est une solution.
Si quelqu'un a toujours des problèmes ... Cela a fait de l'affaire pour moi Vous enregistrez essentiellement des valeurs que vous souhaitez avant la rotation (c'est-à-dire lorsque OnsaveInstanCestate est appelé) dans un paquet et après Rotation (OnrestoreInstanCestate) Vous venez de tirer toutes les valeurs du paquet.
Juste pour clarifier, TVNAZIVPODATKA et TVENOTAMERE sont des widgets TextView. P> ... avec une aide de
Comment éviter sur mesure Vues de la perte d'état à travers l'orientation d'écran change p> p>
Pour conserver un texte de TextView, vous pouvez simplement <TextView
...
android:freezesText="true"
.../>
Vérifiez celui-ci Stackoverflow.com/Questtions/3542333/...
Votre TextView contient-elle une pièce d'identité? Utilisez-vous des fragments?
ID est là mais je n'utilise pas de fragments.
Ajoutez ceci dans votre classe Java
@override Public Void OnconfigurationChanged (Configuration finale NewConfig) {// Ignorer le changement d'orientation pour maintenir l'activité du redémarrage de Super.OnconfigurationChanged (NewConfig); } code> et dans votre fichier manifeste ajoutez ce Activit Y> Code> Cela devrait probablement fonctionner.
@Mukunda merci sa fonctionne maintenant. Mais seulement Android: configchanges = "Orientation B> est suffisant.
@Yugandharbabu Oui seulement Orientation B> est suffisant, mais la documentation Android indique Orientation | KeyboardHenside B> et versions ultérieures après 2.3, vous devez également ajouter ScreenSize B>