我有以下代码:
View.OnClickListener calcu = new View.OnClickListener() {
public void onClick(View v) {
double q;
String d = "";
double factor = cpi[to] / cpi [from];
DecimalFormat decimalFormat = new DecimalFormat("0.##");
if (eNum.getText().toString().length() <= 0 || bFrom.getText() == "- Select a Year -" || bTo.getText() == "- Select a Year -") {
if (eNum.getText().toString().length() <= 0) {
d += "Enter Dollar Amount";
eNum.setTextColor(Color.RED);
}
if (bFrom.getText() == "- Select a Year -") {
d += "Select a Year";
bFrom.setTextColor(Color.RED);
}
if (bTo.getText() == "- Select a Year -") {
d += "Select a Year";
bTo.setTextColor(Color.RED);
}
}
else {
dollarAmount = factor * Double.parseDouble(eNum.getText().toString());
String value = Double.toString(dollarAmount);
if (value.charAt(value.length() - 2) == '.') {
value += "0";
}
displayToast("Dollar: " + value);
if (cpi[to] != cpi[from]) {
double f, y;
if (cpi[to] > cpi[from]) {
f = cpi[to] / cpi [from];
y = to - from;
}
else {
f = cpi[from] / cpi[to];
y = from - to;
}
q = Math.pow(f, 1/y);
q = (q-1)*100.0;
q = Math.round(q*100.0)/100.0;
displayToast("Inflation: " + String.valueOf(decimalFormat.format(q)));
}
}
}
};
displayToast()
是一个向用户显示Toast消息的函数。
eNum
是EditText
bFrom
和bTo
为Buttons
激活onClick方法时我想要发生的事情:
eNum
为空,我想将文字颜色设为红色。bFrom
和bTo
按钮文字为- Select a Year -
,我想将文字颜色设为红色。现在,当我点击时,什么也没发生。如何修复上述代码才能正常工作?
答案 0 :(得分:2)
改变这个:
bFrom.getText() == "- Select a Year -"
对此:
bFrom.getText().equals("- Select a Year -")
同样适合您的bTo.getText() == "- Select a Year -")
行。
使用.equals()
比较对象(例如字符串)和==
原语
答案 1 :(得分:1)
如果您要比较字符串,则需要使用.equals。