2017-06-13 6 views
0

Mon code est répertorié ci-dessous. Plus tôt dans le programme, je laisse l'utilisateur entrer un montant int et le passer dans la vue du texte afin qu'ils puissent voir le montant et ne plus le modifier. Maintenant, j'essaye d'obtenir un int hors de cette même vue de texte. Le problème est le int qui accepte le montant est dans une fonction différente, donc je ne peux pas simplement utiliser ce int. Ceci est destiné à créer int balRem, "trouver" la boîte de vue du texte, lire dans les choses dans la vue de texte, et se retrouver avec le in balRem comme l'int de la "balance" dans la vue de texte de banque.Erreur irrécupérable avec Integer.parseInt (bankBal.toString()) dans l'application Android Studio

J'ai le code ici, et les lignes principales du code d'erreur ci-dessous. L'erreur se produit à la troisième ligne répertoriée.

int balRem; 
    TextView bankBal = (TextView) findViewById(R.id.bankBal); 
    //String balRemStr = bankBal.toString(); 
    balRem = Integer.parseInt(bankBal.toString()); 

java.lang.IllegalStateException: Impossible d'exécuter la méthode pour Android: onClick

Causée par: java.lang.reflect.InvocationTargetException

Causée par: java.lang.NumberFormatException: Pour entrée chaîne: "android.support.v7.widget.AppCompatTextView {aeb8167 V.ED ..... ........ 1037,448-1251,539 # 7f0d0082 app: id/bankBal}"

EDIT - pour adresser dupe, voir le commentaire.

@avojak Non, ce n'est pas le cas. Le problème ici est la source du nombre, pas le nombre lui-même. - EJP

+0

Utiliser 'TextView.getText()' ou quoi que l'API est correcte pour obtenir le texte de la vue du texte. Pas 'toString()'. – EJP

+0

@EJP Merci! Cela a fonctionné, avec une variation. Il fallait 'balRem = Integer.parseInt (bankBal.getText(). ToString());' travailler. Appréciez l'aide. – Mazen

+0

@avojak Non, ce n'est pas le cas. Le problème ici est la source du nombre, pas le nombre lui-même. – EJP

Répondre

0

Votre code tente de prendre l'objet TextView et de le convertir en chaîne, ce qui vous donne l'erreur.

Ce que vous devez réellement faire est d'obtenir la valeur de texte affectée à l'objet TextView et de l'utiliser à la place.

balRem = Integer.parseInt(bankBal.toString()); 

à

balRem = Integer.parseInt(bankBal.getText().toString()); 

Link to Android Documentation

0

Vous devez utiliser bankBal.getText(); pour obtenir le contenu textuel d'un objet TextView.