gpt4 book ai didi

java - 使用 TextWatcher 获取输入到两个编辑文本的值,并在没有按钮的情况下将这些值相乘。自动计算。

转载 作者:行者123 更新时间:2023-11-30 09:19:11 26 4
gpt4 key购买 nike

我希望应用程序在用户将请求的两个值输入到 edittext 时自动计算,而不需要按钮。

有没有不使用 TextWatcher 的方法?

这是我的尝试。为什么它不起作用?当在编辑文本中输入数字时,应用程序强制关闭。

'

public class BodyMassIndex extends Activity

{

double result;
EditText age, height, weight;

TextView tvResult;

int ageInt;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.bmi);
initialize();

TextWatcher textWatcher = new TextWatcher() {

@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
calculate();

}



@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub

}

@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub

}

};

height.addTextChangedListener(textWatcher);
weight.addTextChangedListener(textWatcher);

}

private void initialize() {
// TODO Auto-generated method stub

age = (EditText) findViewById(R.id.etAge);
height = (EditText) findViewById(R.id.etHeight);
weight = (EditText) findViewById(R.id.etWeight);

tvResult = (TextView) findViewById(R.id.tvResult);


}

private void calculate() {
// TODO Auto-generated method stub


double heightInt = 1;
double weightInt = 0;

if (height != null)
heightInt = Double.parseDouble(height.getText().toString());

if (weight != null)
weightInt = Double.parseDouble(weight.getText().toString());

result = weightInt / (heightInt * heightInt);
String textResult = "Your BMI is " + result;
tvResult.setText(textResult);




}}
'

最佳答案

您应该将 edittext 的默认值设置为 0。它可能会强制关闭,因为您正试图从一个没有任何内容的 edittext 中解析一个空字符串;

编辑:试试这个

if (height != null)
heightInt = Double.parseDouble(!height.getText().toString().equals("")?
height.getText().toString() : "0");

if (weight != null)
weightInt = Double.parseDouble(!weight.getText().toString().equals("")?
weight.getText().toString() : "0");

这样你就可以使用一个条件,无论你解析什么都不会抛出异常

关于java - 使用 TextWatcher 获取输入到两个编辑文本的值,并在没有按钮的情况下将这些值相乘。自动计算。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18091425/

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