Android EditText转换为int

时间:2015-12-25 02:42:31

标签: android android-edittext int

我正在尝试开发一款定时器的Android应用。用户在两个EditTexts中输入分钟和小时数,并使用意图将数据放入秒表。不幸的是,我继续得到NumberFormatException。

这是我的代码。

爪哇

@Override
// Gets the view and initializes values for hours and mins
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
   View v = inflater.inflate(R.layout.fragment_alarm, container, false);
   EditText hour = (EditText) v.findViewById(R.id.hours);
   EditText min = (EditText) v.findViewById(R.id.mins);
   alarm = (Button) v.findViewById(R.id.start);
   hours = hour.getText().toString().trim();
   Log.d(TAG, "getting and turning into strings");
   mins = min.getText().toString().trim();
     alarm.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View v) {
        checked.configureCheck(getData());

        }
    });
    return v;
}



private Bundle getData(){
    Bundle b = new Bundle();
    try{
        int hour = Integer.parseInt(hours);
        int min = Integer.parseInt(mins);
        b.putInt("hours", hour);
        b.putInt("minutes", min);
    } catch(NumberFormatException e){
       e.printStackTrace();
    }
    return b;
}

2 个答案:

答案 0 :(得分:0)

将您的editText数据转换为整数或浮点数。

Int a = Integer.valueOf(edittext.getText().toString());

通过这种方式,您可以将字符串值转换为整数

答案 1 :(得分:0)

我认为这里的根本问题是你在查找视图后找到了正确的文本(总是为null),所以解析总是得到Exception。

解决方案:

// Declare the 2 EditText as class variable
EditText hour, min;

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
  // ...
  hour = (EditText) v.findViewById(R.id.hours);
  min = (EditText) v.findViewById(R.id.mins);
  // ...
}

private Bundle getData(){
  Bundle b = new Bundle();
  try {
    int hour = Integer.parseInt(hour.getText().toString().trim());
    int min = Integer.parseInt(min.getText().toString().trim());
    b.putInt("hours", hour);
    b.putInt("minutes", min);
  } catch(NumberFormatException e){
    e.printStackTrace();
  }
  return b;
}
祝你好运