【问题标题】:Android EditText Conversion to intAndroid EditText 转换为 int
【发布时间】:2015-12-25 02:42:31
【问题描述】:

我正在尝试开发一个作为计时器的 Android 应用。用户在两个 EditText 中输入分钟和小时数,并使用意图将数据放入秒表。不幸的是,我不断收到 NumberFormatException。

这是我的代码。

Java

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

【问题讨论】:

  • hoursmin 将始终为空,或者包含您在 xml 中设置的任何默认值。您的“获取并变成字符串”会立即发生 - 而不是在您单击按钮之后。你的 logcat 应该已经告诉你了。您可能想学习一个解释变量概念的基本 Java/编程教程。了解这一点对于您作为程序员的成功至关重要。

标签: android android-edittext int


【解决方案1】:

我认为这里的根本问题是您在找到视图后立即获得文本(始终为空),因此解析总是得到异常。

解决方案:

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

祝你好运

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-08-02
      • 1970-01-01
      • 2016-05-30
      • 2021-12-30
      • 2013-02-08
      • 2020-10-10
      • 1970-01-01
      • 2011-10-13
      • 2014-01-16
      相关资源
      最近更新 更多