2013-09-29 1 views
0

Je construis une application Android et je veux que les utilisateurs puissent insérer un montant d'argent. Pour cela, je veux deux boîtes, une pour le nombre entier d'euros, et une pour les décimales. Pour cela, je peux bien sûr utiliser deux textViews et convertir le contenu en BigDecimal (le type que nous utilisons pour les dénominations en argent). Il y a deux inconvénients à cela cependant; Je veux que le clavier virtuel apparaisse uniquement pour afficher les chiffres, et non les lettres, et bien sûr, la boîte ne doit accepter que les chiffres. Comment insérer un montant d'argent dans Android App?

  • Lorsqu'une personne clique sur le point, je souhaite qu'elle passe automatiquement à la décimale. Lors de la définition du fichier xml, je ne trouve pas de "numberView" spécifique ou quelque chose de similaire. Voyant que cela se produit dans plus de notre application, je suppose qu'il existe une meilleure façon de le faire. J'ai cherché autour, mais je ne peux pas vraiment trouver ce que je cherche (bien que je puisse chercher les mauvais mots).

    Donc, ma question; Est-ce que quelqu'un sait comment je devrais gérer l'insertion de montants d'argent dans une application Android?

  • Répondre

    1

    Pour votre première question: ardroid:inputType="numberDecimal"

    Pour votre deuxième question: Ajouter un écouteur de clic à la vue des points (zone de texte, ou quoi que ce soit) de se concentrer sur la deuxième EditText. Editer: Si l'utilisateur a un clavier non standard, il peut ne pas accepter le type d'entrée numberDecimal. Il peut aussi être une bonne idée de mettre mis android:digits="0,1,2,3,4,5,6,7,8,9"

    1

    Étapes:

    1) Utiliser android: inputType = "numberDecimal"

    2) Ensuite, mettre en œuvre TextWatcher dans votre classe java.

    3) A l'intérieur méthode ensemble écouteur

    onCreate() EditText e1 = (EditText) findViewById (R.id.et1); e1.addTextChangedListener (this);

    4)

    @Override 
        public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { 
         if (arg0.toString().contains(".")) { 
          // e2.requestFocus(); // Set focus to second editText 
         } 
    
        } 
    
    +0

    Merci pour les conseils! Pour la ligne "e1.addTextChangedListener (this);" cependant, je reçois un message disant "La méthode addTextChangedListener (TextWatcher) dans le type TextView n'est pas applicable pour les arguments (MainActivity)". J'ai essayé de changer "ceci" en onTextChanged, mais cela dit simplement que onTextChanged ne peut pas être résolu ou n'est pas un champ, même si je l'ai inclus dans la classe mainActivity. Des conseils? – kramer65

    +0

    addTextChangedListener est pour editText, pas pour TextView. Puisque vous voulez prendre l'entrée de l'utilisateur, je pense que vous avez besoin d'EditText ici. – Swetank