gpt4 book ai didi

android - 如何处理 Android 中未填充的 EditText

转载 作者:行者123 更新时间:2023-11-30 01:56:37 27 4
gpt4 key购买 nike

我想编写一个简单的计算器,它有 3 个输入(NUM1、NUM2、NUM3)、3 个按钮(SUM、SUB、MUL)和 1 个 RESULT 文本平面。在我的应用程序中,如果我提供所有输入,该应用程序将正常运行。但是,如果我没有为 1 个字段提供任何输入,我会遇到应用程序停止错误。我想让我的应用支持任意数量的输入。

这是我的代码。

public void onButtonClickSum(View v){
EditText e1 = (EditText)findViewById(R.id.editText);
EditText e2 = (EditText)findViewById(R.id.editText2);
EditText e3 = (EditText)findViewById(R.id.editText3);

TextView t1 = (TextView)findViewById(R.id.textView2);

int num1 = Integer.parseInt(e1.getText().toString());
int num2 = Integer.parseInt(e2.getText().toString());
int num3 = Integer.parseInt(e3.getText().toString());

int sum = num1 + num2 + num3;

t1.setText(Integer.toString(sum));

}

public void onButtonClickSub(View v){
EditText e1 = (EditText)findViewById(R.id.editText);
EditText e2 = (EditText)findViewById(R.id.editText2);
EditText e3 = (EditText)findViewById(R.id.editText3);

TextView t1 = (TextView)findViewById(R.id.textView2);

int num1 = Integer.parseInt(e1.getText().toString());
int num2 = Integer.parseInt(e2.getText().toString());
int num3 = Integer.parseInt(e3.getText().toString());

int sub = num1 - num2 - num3;

t1.setText(Integer.toString(sub));
}

public void onButtonClickMul(View v){
EditText e1 = (EditText)findViewById(R.id.editText);
EditText e2 = (EditText)findViewById(R.id.editText2);
EditText e3 = (EditText)findViewById(R.id.editText3);

TextView t1 = (TextView)findViewById(R.id.textView2);

int num1 = Integer.parseInt(e1.getText().toString());
int num2 = Integer.parseInt(e2.getText().toString());
int num3 = Integer.parseInt(e3.getText().toString());

int mul = num1 * num2 * num3;

t1.setText(Integer.toString(mul));
}

最佳答案

  • 在将输入解析为整数之前,您需要进行 null 或空检查
  • 尝试制作 EditText 对象字段,因为您要在每个方法中重复使用它们

例子:

// Fields
private EditText mEditText1 = (EditText)findViewById(R.id.editText);
private EditText mEditText2 = (EditText)findViewById(R.id.editText2);
private EditText mEditText3 = (EditText)findViewById(R.id.editText3);
private TextView mTextView = (TextView)findViewById(R.id.textView2);

public void onButtonClick(View v){
int num1 = 0;
int num2 = 0;
int num3 = 0;

String e1 = mEditText1.getText();
String e2 = mEditText2.getText();
String e3 = mEditText3.getText();

if(!e1.isEmpty()) {
num1 = Integer.parseInt(e1);
}
if(!e2.isEmpty()){
num2 = Integer.parseInt(e2);
}
if(!e3.isEmpty()){
num3 = Integer.parseInt(e3);
}

int sub = num1 - num2 - num3;

mTextView.setText(Integer.toString(sub));
}

关于android - 如何处理 Android 中未填充的 EditText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32104054/

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