java - 编辑文本到整数 (Android)

标签 java android parsing android-edittext countdowntimer

我正在尝试将 XML 中数字类型的 EditText 转换为 Integer,以便计算以秒为单位的值。

    hoursIn = (EditText) findViewById(R.id.hoursET);
    minIn = (EditText) findViewById(R.id.minET);
    start = (Button) findViewById(R.id.startButton);
    stop = (Button) findViewById(R.id.stopButton);
    textViewTime = (TextView) findViewById(R.id.timeDisp);

    inHr = Integer.parseInt(hoursIn.getText().toString());
    inMin = Integer.parseInt(minIn.getText().toString());

    hoursMs = hrsToMs(inHr);
    minMs = minToMs(inMin);
    totalTime = hoursMs + minMs;

当我注释初始化 inHr 和 inMin 的行时,我在运行时没有收到错误,但是当我保留上面的代码时,我收到以下错误:

java.lang.RuntimeException:无法启动 Activity ComponentInfo{dit.assignment3/dit.assignment3.Timer}:java.lang.NumberFormatException:无效的 int:“”

我也尝试过此操作,同时从同一行代码开始出现相同的错误:

    final CounterClass timer = new CounterClass(totalTime, 1000);
    start.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (hoursIn != null)
            {
                inHr = Integer.parseInt(hoursIn.getText().toString());
                hoursMs = hrsToMs(inHr);

            }
            if (minIn != null)
            {
                inMin = Integer.parseInt(minIn.getText().toString());
                minMs = minToMs(inMin);
            }
            else
            {
                textViewTime.setText("PLEASE GIVE A TIME");
            }
            totalTime = hoursMs + minMs;
            timer.start();
        }
    });

提前致谢:)

最佳答案

我确信此代码块与您在此处显示的完全相同。这意味着您直接初始化 EditText 并立即调用 getText() 方法,这会导致 Exception

初始化后不会立即有任何值,因此当调用 Integer.parseInt 为空值时,您会收到 NumberFormatException

所以我建议您将这些代码放在像 buttonClicked 这样的事件中,这样您就可以确定您已经输入了一些文本。最好也检查是否为空

public void buttonClicked(View v){
    inHr = Integer.parseInt(hoursIn.getText().toString());
    inMin = Integer.parseInt(minIn.getText().toString());
}

关于java - 编辑文本到整数 (Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36314901/

相关文章:

Java 原子变量 set() 与 compareAndSet()

android - 不刷新 UI 的 notifyDataSetChanged()?

java - 无法获取 HTML 元素 (JSOUP)

c - 从输入字符串中解析数据

Python:解析 XML 自动添加所有键/值对

java - Thread.getContextClassLoader() == null?

java - JSP 中的页眉、页脚、左侧和右侧模板

java - 在哪里可以找到 JSR-275 替代品?

android - 在 oreo 8.1.0 中我无法获取 fcm 设备 id

java - 在 Libgdx (Android) 的相机 View 之外时, Sprite 是否会自动不被绘制