此代码有问题!
我想检查editText值,如果它是null或不... 但它会陷入if段,如果它是editText中的值,则不会出现问题。 如果editText字符串中有值,则应进一步计算值。
我遇到的第二个问题是吐司,它不会在字符串变量中显示文本,它只是打印字符串链接。
private EditText fp;
private EditText fC;
private EditText drive;
private TextView totalcost;
public void CalcButton(View button) {
// Converting strings to float and check if each is NULL (empty)
if (!(fp.getText().equals(null)) || (fC.getText().equals(null)) || (drive.getText().equals(null)))
{
Toast.makeText(getApplicationContext(), "@string/toast", Toast.LENGTH_LONG).show();
}else {
String n1 = fp.getText().toString();
float no1 = Float.parseFloat(n1);
String n2 = fC.getText().toString();
float no2 = Float.parseFloat(n2);
String n3 = drive.getText().toString();
float no3 = Float.parseFloat(n3);
// Calculates the floats
float calc = no1 * no2 * no3;
// Converting and prints out the result
String sum = Float.toString(calc);
totalcost.setText(sum);
}
答案 0 :(得分:2)
你不应该这样做,而是这样做:
if (!fp.getText().toString().equals("")) {
}
答案 1 :(得分:1)
要解决Toast
的问题 - 请使用:
Toast.makeText(getApplicationContext(), R.string.toast, Toast.LENGTH_LONG).show();
答案 2 :(得分:1)
尝试使用TextUtils.isEmpty()
,它会检查null
和0长度String
。
在您的if
声明中,它应如下所示:
if (!TextUtils.isEmpty(fp.getText().toString())) {
// Code
}
在Toast
上,将"@string/toast"
更改为R.string.toast
或getApplicationContext().getString(R.string.toast);
代码应如下所示:
// Converting strings to float and check if each is NULL (empty)
if (! (TextUtils.isEmpty(fp.getText().toString()) ||
(TextUtils.isEmpty(fC.getText().toString())) ||
(TextUtils.isEmpty(drive.getText().toString()))))
{
Toast.makeText(getApplicationContext(), getApplicationContext().getString(R.string.toast), Toast.LENGTH_LONG).show();
}
有关getString()
方法here的更多信息。
编辑:我发现您的代码也缺少一对括号( )
。所以你的"不是"仅适用于第一次测试。
类似的东西:
!(test1) || test2 || test3
而不是
!((test1) || (test2) || (test3))
答案 3 :(得分:0)
要检查EditText是否为空,请执行editText.getText().toString().equals("")
所以,你的if语句将如下所示:
if (!(fp.getText().toString().equals("")) ||
(fC.getText().toString().equals("")) ||
(drive.getText().toString().equals("")))
你的吐司会是这样的:
Toast.makeText(getApplicationContext(), R.string.toast, Toast.LENGTH_LONG).show();
答案 4 :(得分:0)
function isNull(int resourceId, boolean getError){
EditText editText= (EditText) findViewById(resourceId);
String strEditText = String.valueOf(editText.getText());
if(TextUtils.isEmpty(strEditText)) {
if(getError) editText.setError("this is null!");
return true;
}else{
return false;
}
}
可能是这个块给你一些关于你的线索
关于如果条件; 在您的“IF条件”中,括号似乎小于必要的计数。 尝试在(!)
之后再添加一个我想它应该是这样的; 为负面
if (!(
(String.valueOf(fp.getText()).equals("")) ||
(String.valueOf(fC.getText()).equals("")) ||
(String.valueOf(drive.getText()).equals(""))
))
表示正面
if (
(String.valueOf(fp.getText()).equals("")) ||
(String.valueOf(fC.getText()).equals("")) ||
(String.valueOf(drive.getText()).equals(""))
)