gpt4 book ai didi

java - 十进制输入崩溃

转载 作者:行者123 更新时间:2023-11-29 18:52:43 25 4
gpt4 key购买 nike

所以我是 Android Studio 的初学者,我正在尝试制作这个简单的应用程序来计算您总共喝了多少水和平均喝了多少水。这个想法是,有人在整个星期的每一天都输入他们喝了多少水。当我点击“计算”时,会计算一天的总数和平均值。

我的问题是,每当我输入带小数的数字(如 2,3)时,应用程序就会崩溃。我确实找到了一个解决方案,我需要做一个验证(if,else)函数,但我不太确定如何在一个函数中选择所有的日子。

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button addBtn = (Button) findViewById(R.id.calculateBtn);
addBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
EditText editTextMon = (EditText) findViewById(R.id.editTextMon);
EditText editTextTue = (EditText) findViewById(R.id.editTextTue);
EditText editTextWed = (EditText) findViewById(R.id.editTextWed);
EditText editTextThu = (EditText) findViewById(R.id.editTextThu);
EditText editTextFri = (EditText) findViewById(R.id.editTextFri);
EditText editTextSat = (EditText) findViewById(R.id.editTextSat);
EditText editTextSun = (EditText) findViewById(R.id.editTextSun);
TextView resultTextView = (TextView) findViewById(R.id.resultTextView);
TextView errorView = (TextView) findViewById(R.id.errorView);
TextView averageTextView = (TextView) findViewById(R.id.averageTextView);
EditText allDays = (EditText) findViewById(R.id.editTextMon);

int mon = Integer.parseInt(editTextMon.getText().toString());
int tue = Integer.parseInt(editTextTue.getText().toString());
int wed = Integer.parseInt(editTextWed.getText().toString());
int thu = Integer.parseInt(editTextThu.getText().toString());
int fri = Integer.parseInt(editTextFri.getText().toString());
int sat = Integer.parseInt(editTextSat.getText().toString());
int sun = Integer.parseInt(editTextSun.getText().toString());

if ( ! (allDays.equals("") || allDays.equals("-")) ) {
int result = mon + tue + wed + thu + fri + sat + sun;
resultTextView.setText("Total: " + result + " L");

int average = result / 7;
averageTextView.setText("Avg: " + average + " L");
} else {
errorView.setText("Invalid Input");
}

}
});
}
}

最佳答案

您正在将所有值存储在 Integer 数据类型中。使用 float 存储它们并使用 Float.parseFloat(yourEditText.getText().toString());

解析它们

关于java - 十进制输入崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50604136/

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