请帮助我,我的应用程序崩溃我不知道我在做什么错误 我认为错误是将String从EditText转换为整数。
package com.example.talha.int_test;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
EditText e1;
TextView t1;
Button b1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
e1 = (EditText)findViewById(R.id.editText);
t1 = (TextView)findViewById(R.id.textView);
b1 = (Button)findViewById(R.id.button);
final int a = Integer.parseInt(e1.getText().toString());
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
t1.setText("Value in A: "+a);
}
});
答案 0 :(得分:3)
您收到NumberFormatException
,因为您尝试在String
开头解析空onCreate
。为了解决此问题,请将parseInt
移至b1
的点击监听器
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int a = Integer.parseInt(e1.getText().toString());
t1.setText("Value in A: "+a);
}
});
请注意,您的EditText
可能应该inputType="number"
,或者用户可以将任何内容放入其中。然后,您必须使用try-catch
来避免可能的应用崩溃。
答案 1 :(得分:0)
e1.getText().tostring it returns "" which is empty string hence you can't convert it to integer so make sure it is not empty
String x=e1.getText.toString();
If(!x.isEmpty() && x.length()>1){
//Now parse your string here
final int a= Integer.parseInt(x);
}