将textview中的数字转换为int

时间:2013-07-31 22:56:20

标签: java android textview int type-conversion

所以,我正在搞乱java / android编程,现在我正在尝试制作一个非常基本的计算器。我虽然挂了这个问题。这是我现在用于获取textview中的数字并使其成为int

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

从我所知道的是导致错误的第二行,但我不确定为什么会这样做。编译正常,但当它试图运行程序的这一部分时,它会崩溃我的应用程序。 textview中唯一的东西就是数字

有什么建议吗?

如有必要,我还可以提供更多代码

5 个答案:

答案 0 :(得分:17)

您可以阅读TextView的使用情况。

如何声明:

TextView tv;

初始化:

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

或:

tv = new TextView(MyActivity.this);

或者,如果要给布局充气,

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

要将字符串设置为tv,请使用tv.setText(some_string)tv.setText("this_string")。如果需要设置整数值,请使用tv.setText("" + 5),因为setText()是一个可以处理字符串和int参数的重载方法。

要从tv使用tv.getText()获取值。

始终检查解析器是否可以处理textView.getText().toString()可以提供的可能值。如果您尝试解析空字符串(“”),则抛出NumberFormatException。或者,如果您尝试解析.

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

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

答案 1 :(得分:3)

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

此代码实际上效果更好:

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

答案 4 :(得分:0)

这是kotlin版本:

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