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
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);
}
TextView tv = (TextView)findviewbyID(R.id.textView);
int num = Integer.valueOf(tv.getText().toString());
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");
}
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
Voici la version kotlin:
var value = textview.text.toString().toIntOrNull() ?: 0