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");
}
}
}
);
}
答案 0 :(得分:4)
在Java中,您无法检查Strings
与==
运算符之间的相等性。此运算符检查引用类型的相等引用,仅检查基本类型的相等值。由于String
是一种参考类型,因此失败就不足为奇了。
要检查Strings
(或Objects
之间的相等性),请使用此选项:
str1.equals(str2);
或在你的情况下:
afd.equals("1000");
答案 1 :(得分:2)
替换
if (afd == "1000")
与
if (afd.equals("1000"))
这应该有用。
这个想法是==
检查位于堆栈上的实体的值,而在Java中,只有基本类型和引用保存在堆栈上。对象位于堆上,要比较对象状态,您需要一个运行时虚拟方法,如equals()
(而不是==
之类的运算符。)