Convert number in textview to int

喜你入骨 提交于 2020-04-08 09:20:16

问题


So, I am messing around with java/android programming and right now I am trying to make a really basic calculator. I am hung up on this issue though. This is the code I have right now for getting the number thats in the textview and making it an int

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

And from what I can tell it is the second line that is causing the error, but im not sure why it is doing that. It is compiling fine, but when it tries to run this part of the program it crashes my app. And the only thing thats in the textview is numbers

Any advice?

I can also provide more of my code if necessary


回答1:


You can read on the usage of TextView.

How to declare it:

TextView tv;

Initialize it:

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

or:

tv = new TextView(MyActivity.this);

or, if you are inflating a layout,

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

To set a string to tv, use tv.setText(some_string) or tv.setText("this_string"). If you need to set an integer value, use tv.setText("" + 5) as setText() is an overloaded method that can handle string and int arguments.

To get a value from tv use tv.getText().

Always check if the parser can handle the possible values that textView.getText().toString() can supply. A NumberFormatException is thrown if you try to parse an empty string(""). Or, if you try to parse ..

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

if (!tvValue.equals("") && !tvValue.equals(......)) {
    int num1 = Integer.parseInt(tvValue);
}



回答2:


TextView tv = (TextView)findviewbyID(R.id.textView);
int num = Integer.valueOf(tv.getText().toString());



回答3:


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");
}



回答4:


this code actually works better:

//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



回答5:


Here is the kotlin version :

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


来源:https://stackoverflow.com/questions/17982410/convert-number-in-textview-to-int

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!