如果声明,代码不起作用

时间:2015-03-08 10:17:22

标签: android string button if-statement android-edittext

final EditText yaz = (EditText)findViewById(R.id.editText);
    final Button bas = (Button)findViewById(R.id.button);

    yaz.setText("500");
        bas.setOnClickListener(new View.OnClickListener() {
                                        @Override
                                        public void onClick(View v) {
                                            String afd = yaz.getText().toString();
                                            if (afd == "1000") {
                                                yaz.setText("2000");
                                            }
                                        }
                                    }
    );
    }

2 个答案:

答案 0 :(得分:4)

在Java中,您无法检查Strings==运算符之间的相等性。此运算符检查引用类型的相等引用,仅检查基本类型的相等值。由于String是一种参考类型,因此失败就不足为奇了。

要检查Strings(或Objects之间的相等性),请使用此选项:

str1.equals(str2);

或在你的情况下:

afd.equals("1000");

答案 1 :(得分:2)

替换

if (afd == "1000")

if (afd.equals("1000"))

这应该有用。

这个想法是==检查位于堆栈上的实体的值,而在Java中,只有基本类型和引用保存在堆栈上。对象位于堆上,要比较对象状态,您需要一个运行时虚拟方法,如equals()(而不是==之类的运算符。)