如何忽略空的 EditText?
How Ignore Empty EditText?
我有 6 Edit Text 如果用户输入所有这些都会做一些计算,我想忽略 Empty Edit Text 这样我的应用程序就不会崩溃没有输入,我找到了方法,但是将每种可能性用于编辑文本是痛苦且耗时的。
对于加法,我发现很简单,为什么只检查编辑文本是否为空输入值 0,
Edittext.SetText("0");
所以我可以执行加法,如果只给例如 ed1=1, ed=1, ed3=1
这样的 3 个输入
edTotal = 1 + 1 + 1 + 0 + 0 + 0 = 3;
我的问题是其他运算,如果除法或乘法我们不能将其设置为零,它会改变结果。
抱歉还在学习 code.Thanks 以寻求任何帮助。
我猜你应该拿走每个 editText 并检查它是否为空 ->
int count = 0;
if(!editTextFirst.getText.toString().equals("")){
count += Integer.parse(editTextFirst.getText.toString());
}
else if(// next editText){
}
通过除法和乘法将计数从 0 更改为 1。如果 java 语法有任何错误,我们深表歉意。
我写了一些你可以使用的实用方法。您将需要删除当前使用的默认值“0”。这样,如果 EditText
没有 Integer
值计算,则 EditText
将被跳过。
根据您的需要修改这些函数:)
private void addValueFromEditText(EditText yourEditText) {
try {
edTotal += Integer.valueOf(yourEditText.getText().toString());
} catch (NumberFormatException exception) {
Toast.makeText(context, yourEditText + " has non Integer value", Toast.LENGTH_SHORT).show();
}
}
private void multiplyByValueFromEditText(EditText yourEditText) {
try {
edTotal *= Integer.valueOf(yourEditText.getText().toString());
} catch (NumberFormatException exception) {
Toast.makeText(context, yourEditText + " has non Integer value", Toast.LENGTH_SHORT).show();
}
}
private void divideByValueFromEditText(EditText yourEditText) {
try {
edTotal /= Integer.valueOf(yourEditText.getText().toString());
} catch (NumberFormatException exception) {
Toast.makeText(context, yourEditText + " has non Integer value", Toast.LENGTH_SHORT).show();
}
private void sumAllEditTexts() {
addValueFromEditText(ed1);
addValueFromEditText(ed2);
addValueFromEditText(ed3);
addValueFromEditText(ed4);
addValueFromEditText(ed5);
addValueFromEditText(ed6);
}
}
编辑
添加了有关如何使用的示例方法。
或者您可以简单地遍历包含那些 EditTextView
的
的容器
您可以创建一个 return int 值的方法。
private int extractInt(EditText editText) {
return editText.getText().toString().isEmpty() ? 0 : Integer.parseInt(editText.getText().toString());
}
这表示检查编辑文本是否为空,return 0 或 return 整数值。
在任何需要的地方使用创建的方法。
int Total = extractInt(youreditText1) + extractInt(youreditText2) + extractInt(youreditText3) + extractInt(youreditText4);
或者您可以将您的编辑文本设为 vale + 0,例如 Integer.interger ("0" + editText.getText().toString());
}
或输入Toast.makeText(Profesional_5x1.this, "No valid values, et least please input two result measurements MUAC, Knee Height, and age", Toast.LENGTH_SHORT).show();
我有 6 Edit Text 如果用户输入所有这些都会做一些计算,我想忽略 Empty Edit Text 这样我的应用程序就不会崩溃没有输入,我找到了方法,但是将每种可能性用于编辑文本是痛苦且耗时的。 对于加法,我发现很简单,为什么只检查编辑文本是否为空输入值 0,
Edittext.SetText("0");
所以我可以执行加法,如果只给例如 ed1=1, ed=1, ed3=1
edTotal = 1 + 1 + 1 + 0 + 0 + 0 = 3;
我的问题是其他运算,如果除法或乘法我们不能将其设置为零,它会改变结果。
抱歉还在学习 code.Thanks 以寻求任何帮助。
我猜你应该拿走每个 editText 并检查它是否为空 ->
int count = 0;
if(!editTextFirst.getText.toString().equals("")){
count += Integer.parse(editTextFirst.getText.toString());
}
else if(// next editText){
}
通过除法和乘法将计数从 0 更改为 1。如果 java 语法有任何错误,我们深表歉意。
我写了一些你可以使用的实用方法。您将需要删除当前使用的默认值“0”。这样,如果 EditText
没有 Integer
值计算,则 EditText
将被跳过。
根据您的需要修改这些函数:)
private void addValueFromEditText(EditText yourEditText) {
try {
edTotal += Integer.valueOf(yourEditText.getText().toString());
} catch (NumberFormatException exception) {
Toast.makeText(context, yourEditText + " has non Integer value", Toast.LENGTH_SHORT).show();
}
}
private void multiplyByValueFromEditText(EditText yourEditText) {
try {
edTotal *= Integer.valueOf(yourEditText.getText().toString());
} catch (NumberFormatException exception) {
Toast.makeText(context, yourEditText + " has non Integer value", Toast.LENGTH_SHORT).show();
}
}
private void divideByValueFromEditText(EditText yourEditText) {
try {
edTotal /= Integer.valueOf(yourEditText.getText().toString());
} catch (NumberFormatException exception) {
Toast.makeText(context, yourEditText + " has non Integer value", Toast.LENGTH_SHORT).show();
}
private void sumAllEditTexts() {
addValueFromEditText(ed1);
addValueFromEditText(ed2);
addValueFromEditText(ed3);
addValueFromEditText(ed4);
addValueFromEditText(ed5);
addValueFromEditText(ed6);
}
}
编辑
添加了有关如何使用的示例方法。
或者您可以简单地遍历包含那些 EditTextView
的
您可以创建一个 return int 值的方法。
private int extractInt(EditText editText) {
return editText.getText().toString().isEmpty() ? 0 : Integer.parseInt(editText.getText().toString());
}
这表示检查编辑文本是否为空,return 0 或 return 整数值。
在任何需要的地方使用创建的方法。
int Total = extractInt(youreditText1) + extractInt(youreditText2) + extractInt(youreditText3) + extractInt(youreditText4);
或者您可以将您的编辑文本设为 vale + 0,例如 Integer.interger ("0" + editText.getText().toString());
}
或输入Toast.makeText(Profesional_5x1.this, "No valid values, et least please input two result measurements MUAC, Knee Height, and age", Toast.LENGTH_SHORT).show();