gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 10:08:20 26 4
gpt4 key购买 nike

我正在尝试将 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com