求一个android中EditText内的数据转换成int类型的完整方法
data=Integer.parseInt(myEditText.getText().toString());根本不行啊。运行就报错:(317): java.lang.NumberFormatException: unable to parse '' as integerEditText中的数据类型转换

解决方案 »

  1.   

    应该是你的editText没有值所造成的吧。
    这样你在这句话之前写个变量
    String str_data = myEditText.getText().toString();
    if("".equals(str_data)){
        str_data = "0";
    }
    data=Integer.parseInt(str_data);
      

  2.   

    try {
    data = Integer.parseInt(a);
    } catch (NumberFormatException e) {
    //处理
    }
      

  3.   

    还有 edieText有专门输入 数字的吧
      

  4.   

    我的的EditText中有一个默认的值,所以不存在四楼你所说的我的EditText中没有值的情况。
      

  5.   

    7楼的那个方法我试了,没有报错,但是EditText中的值传不进来,不知道是怎么回事。
    也用了专门输入数字的EditText,但是获得的数据类型是Editable类型的数据,而且还不能转换成int型,到底该怎么弄撒!?
      

  6.   

    那个try catch 是为了截取 异常的 那个意思的就是没有读取到数据 你应该做 异常处理的。。     android:inputType="number"字符串中 有字母没办法解析的
      

  7.   


    应该是你的editText没有值所造成的吧。
    这样你在这句话之前写个变量
    String str_data = myEditText.getText().toString();
    if(TextUtils.isEmpty(str_data) || (str_data.trim().length() == 0)){
        str_data = "0";
    }
    data=Integer.parseInt(str_data); 
    前提是要确保str_data除非null情况外  必须是数字字符负责还是会报的
      

  8.   

    敢不敢debug跟踪一下啊、、、
      

  9.   

    unable to parse '' as integer
    明显你获取到的是'',没有任何可转换成int的数据。
      

  10.   

        public class Activity_08 extends Activity {
    private EditText myEditText = null;
    private TextView myTextView = null;
    private Button myButton = null;
    private int data;
    private Bundle bundle;
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            myEditText=(EditText)findViewById(R.id.myEditText);
            myTextView=(TextView)findViewById(R.id.myTextView);
            myButton=(Button)findViewById(R.id.myButton);
            try{
             data=Integer.parseInt(myEditText.getText().toString());
             //data=myEditText.getText();
            }catch (Exception e){
             e.printStackTrace();
            }
            /*String string_data=myEditText.getText().toString();
            if(""==string_data)
            {
             string_data="0";
            }
            data=Integer.parseInt(string_data);*/
            myButton.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub
     System.out.println(data);
    }
    });
          
        }
    }
    这是刚开始运行:
    输入数据后运行的结果:
      

  11.   

    楼主试试这个
    final TextView tv = (TextView) findViewById(R.id.textView1);
    final EditText et = (EditText) findViewById(R.id.editText1);
    Button bt = (Button) findViewById(R.id.button1);
    bt.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
    if (et != null) {
    String str = et.getText().toString();
    Log.i("onClick = ", str);
    if (str != null && str.length() > 0) {
    data = Integer.parseInt(str);
    }
    if (tv != null) {
    tv.setText(data+"");
    }
    }
    }
    });
      

  12.   

    为啥我用你这段代码,可以正常的把editText中的内容放到data中呢?
      

  13.   

    我试了几遍,EditText中的值传不进来,不知道你为什么可以。
      

  14.   

    17楼答案是正确的,现在问题已经解决。其他方法也是对的,只是要把从EditText中取值的部分写在Button的监听器里面才能正常读取数据。不知道为什么,谁能给解释下吗?