将字符串从编辑文本转换为整数



请帮助我,我的应用程序崩溃了,我不知道我做错了什么, 我认为错误是将字符串从编辑文本转换为整数。

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

您正在得到一个NumberFormatException,因为您正在尝试在onCreate开始时解析一个空String。为了解决此问题,请将您的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来避免可能的应用程序崩溃。

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

}

最新更新