Java 将textview中的数字转换为int
所以,我在玩java/android编程,现在我正在尝试制作一个真正基本的计算器。不过我对这个问题很感兴趣。这是我现在的代码,用于获取文本视图中的数字并将其设置为intJava 将textview中的数字转换为int,java,android,textview,int,type-conversion,Java,Android,Textview,Int,Type Conversion,所以,我在玩java/android编程,现在我正在尝试制作一个真正基本的计算器。不过我对这个问题很感兴趣。这是我现在的代码,用于获取文本视图中的数字并将其设置为int CharSequence value1 = getText(R.id.textView); int num1 = Integer.parseInt(value1.toString()); 从我可以看出,是第二行导致了错误,但我不确定它为什么会这样做。它正在编译,但当它试图运行程序的这一部分时,它会使我的应用程序崩溃。文本视图
CharSequence value1 = getText(R.id.textView);
int num1 = Integer.parseInt(value1.toString());
从我可以看出,是第二行导致了错误,但我不确定它为什么会这样做。它正在编译,但当它试图运行程序的这一部分时,它会使我的应用程序崩溃。文本视图中只有数字
有什么建议吗
如有必要,我还可以提供更多的代码您可以阅读的用法
TextView tv = (TextView)findviewbyID(R.id.textView);
int num = Integer.valueOf(tv.getText().toString());
如何申报:
TextView tv;
初始化它:
tv = (TextView) findViewById(R.id.textView);
或:
或者,如果您正在膨胀布局
tv = (TextView) inflatedView.findViewById(R.id.textView);
要将字符串设置为tv
,请使用tv.setText(一些字符串)
或tv.setText(“此字符串”)
。如果需要设置整数值,请使用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);
}
此代码实际上工作得更好:
//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
以下是kotlin版本:
var value = textview.text.toString().toIntOrNull() ?: 0
建议:阅读(并发布)错误。您可以共享更详细的代码吗?并发布从
getText()
返回的值。不要忘记捕获异常,因为TextView中的文本可能不是有效数字。如Gaurav所说:int num=Integer.parseInt(tv.getText().toString());
//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
var value = textview.text.toString().toIntOrNull() ?: 0