2017-03-22 68 views
-1

请帮助我的应用程序崩溃我不知道我在做什么错误我认为错误是将字符串从EditText转换为Integer。将字符串从EditText转换为Integer

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

你什么错误? – TDG

+0

每当我运行它的时候它崩溃了 –

+0

你能找到任何logcat ..? –

回答

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

}

3

你得到一个NumberFormatException因为你试图在onCreate开始解析空String。为了解决这个问题将您parseIntb1点击收听这样

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来避免可能的应用程序崩溃。

+0

@TalhaShaikh好吧,如果这个答案解决了你的问题,你能把它标记为已接受吗? –