-1

我有以下代码:

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并且bToButtons

当 onClick 方法被激活时我想要发生的事情:

  1. 如果eNum为空,我想让文本颜色为红色。
  2. 如果bFrombTo按钮文本是- Select a Year -,我想让文本颜色为红色。
  3. 如果 #1 和 #2 不正确,则显示 Toast。

现在,当我单击时,什么也没有发生。如何修复上述代码以正常工作?

4

2 回答 2

2

改变这个:

bFrom.getText() == "- Select a Year -"

对此:

bFrom.getText().equals("- Select a Year -")

你的bTo.getText() == "- Select a Year -")线路也是如此。

用于.equals()比较对象(例如字符串)和==原语

于 2013-10-11T14:07:19.017 回答
1

如果要比较字符串,则需要使用 .equals。

于 2013-10-11T15:17:39.513 回答