我一直在努力解决这个问题,每当我的应用程序中有一个空字段时,它就会使我的应用程序崩溃。当我运行代码时,它告诉我第 32 行和第 37 行有错误,就在我将字符串从 textView 转换为整数以对这些数字进行操作的地方如果你们能看看这个就太好了。package com.studium.second.secondtest;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;public class MainActivity extends Activity { Activity miActividad; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); miActividad = this; Button calcular = findViewById(R.id.button1); calcular.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { TextView textoBase = findViewById(R.id.areaBase); String base = textoBase.getText().toString(); int numeroBase = Integer.parseInt(base); TextView textoAltura = findViewById(R.id.areaAltura); String altura = textoAltura.getText().toString(); int numeroAltura = Integer.parseInt(altura); //Operación final TextView cajaResultado = findViewById(R.id.areaResultado); final int operacion = numeroAltura * numeroBase; cajaResultado.setText(getResources().getString(R.string.textoResultado ) + " " + operacion);
3 回答
呼如林
TA贡献1798条经验 获得超3个赞
解决方案:
在这行之前int numeroBase = Integer.parseInt(base);写这个:
if (base.contentEquals("")) {
Toast.makeText(MainActivity.this, "Please enter a value in Base", Toast.LENGTH_SHORT).show;
else {
int numeroBase = Integer.parseInt(base);
....
}
并对这一行做同样的事情: int numeroAltura = Integer.parseInt(altura);
就是这样。
尚方宝剑之说
TA贡献1788条经验 获得超4个赞
String base = textoBase.getText().toString();
int numeroBase = Integer.parseInt(base);
String altura = textoAltura.getText().toString();
int numeroAltura = Integer.parseInt(altura);
您不能.parseInt对空字符串执行。这当然会导致崩溃。您必须先检查空字符串。
慕妹3146593
TA贡献1820条经验 获得超9个赞
尝试这个
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
添加回答
举报
0/150
提交
取消