web-dev-qa-db-fra.com

Convertir un nombre dans textview en int

Donc, je m'amuse avec la programmation Java/Android et en ce moment j'essaye de faire une calculatrice vraiment basique. Je suis accroché sur cette question cependant. C’est le code que j’ai en ce moment pour obtenir le nombre qui se trouve dans la vue texte et en faire un

CharSequence value1 = getText(R.id.textView);
int num1 =  Integer.parseInt(value1.toString());

Et d'après ce que je peux dire, c'est la deuxième ligne qui est à l'origine de l'erreur, mais je ne sais pas trop pourquoi. Il compile bien, mais quand il essaie d’exécuter cette partie du programme, il bloque mon application. Et la seule chose qui est dans le textview est des nombres

Aucun conseil?

Je peux également fournir plus de mon code si nécessaire

10
Bigandrewgold

Vous pouvez lire sur l'utilisation de TextView

Comment le déclarer:

TextView tv;

Initialise le:

tv = (TextView) findViewById(R.id.textView);

ou:

tv = new TextView(MyActivity.this);

ou, si vous gonflez une mise en page,

tv = (TextView) inflatedView.findViewById(R.id.textView);

Pour définir une chaîne sur tv, utilisez tv.setText(some_string) ou tv.setText("this_string"). Si vous devez définir une valeur entière, utilisez tv.setText("" + 5), car setText () est une méthode surchargée pouvant gérer des arguments string et int.

Pour obtenir une valeur de tv, utilisez tv.getText().

Vérifiez toujours si l'analyseur peut gérer les valeurs possibles que textView.getText().toString() peut fournir. Une NumberFormatException est levée si vous essayez d'analyser une chaîne vide (""). Ou, si vous essayez d'analyser ..

String tvValue = tv.getText().toString();

if (!tvValue.equals("") && !tvValue.equals(......)) {
    int num1 = Integer.parseInt(tvValue);
}
17
Vikram
TextView tv = (TextView)findviewbyID(R.id.textView);
int num = Integer.valueOf(tv.getText().toString());
3
fenix
TextView tv = (TextView)findviewbyID(R.id.textView);
String text = tv.getText().toString();
int n;
if(text.matches("\\d+")) //check if only digits. Could also be text.matches("[0-9]+")
{
   n = Integer.parseInt(text);
}
else
{
   System.out.println("not a valid number");
}
1
ARMAGEDDON

ce code fonctionne réellement mieux:

//this code to increment the value in the text view by 1

TextView quantityTextView = (TextView)findViewById(R.id.quantity_text_view);
        CharSequence v1=quantityTextView.getText();
        int q=Integer.parseInt(v1.toString());
        q+=1;
        quantityTextView.setText(q +"");


//I hope u like this
0
Bayan Al_A6rsh

Voici la version kotlin:

var value = textview.text.toString().toIntOrNull() ?: 0
0
Z3nk