if 语句,代码不起作用

if statement, Code not work

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");
                                            }
                                        }
                                    }
    );
    }

替换

if (afd == "1000")

if (afd.equals("1000"))

这应该有效。

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

在 Java 中,您无法使用 == 运算符检查 Strings 之间的相等性。此运算符检查引用类型的相等引用,并且仅检查原始类型的相等值。由于 String 是引用类型,因此失败也就不足为奇了。

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

str1.equals(str2);

或者您的情况:

afd.equals("1000");