gpt4 book ai didi

java - 点击按钮导致应用程序崩溃

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

我创建了一个简单的 Android 应用程序,它接受两个数字并通过添加来显示它们。当我输入值时它可以正常工作,但如果我不输入值并点击按钮,应用程序就会崩溃..请指导我并提前致谢这是它的 XML 代码

<EditText
android:id="@+id/et_first"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter first number"
android:inputType="number" />

<EditText
android:id="@+id/et_second"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/et_first"
android:hint="Enter second number"
android:inputType="number" />

<Button
android:id="@+id/btn_add"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:onClick="addition"
android:text="+" />

<TextView
android:id="@+id/tv_result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/btn_add"
android:textAppearance="?android:textAppearanceLarge" />

这是它的MainActivity.Java代码

 import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

public void addition(View view) {
EditText first_number = (EditText) findViewById(R.id.et_first);
float first = Float.parseFloat(first_number.getText().toString());
EditText second_number = (EditText) findViewById(R.id.et_second);
float second = Float.parseFloat(second_number.getText().toString());
TextView tv_result = (TextView) findViewById(R.id.tv_result);
float result = first + second;
tv_result.setText(String.valueOf(result));
}
}

最佳答案

您需要首先检查 EditText 中是否确实有文本,否则当您尝试将空字符串解析为 float 时,您将收到 NumberFormatException

String firstNumber = first_number.getText().toString();
float first = TextUtils.isEmpty(firstNumber) ? 0 : Float.parseFloat(firstNumber);

如果您还想处理评论中提到的无效输入,请尝试以下方法:

private float parseFloat(String floatStr) {
if(TextUtils.isEmpty(floatStr)) return 0;

try {
return Float.parseFloat(floatStr);
} catch(NumberFormatException e) {
return 0;
}
}

您可以将 0 替换为您想要使用的任何其他默认值。然后您可以执行以下操作:
floatfirst = parseFloat(first_number.getText().toString());

关于java - 点击按钮导致应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34818457/

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