Java/Android编程/ EditText - > getText().toString()

sub*_*nid 3 java android android-edittext

可能重复:
如何比较Java中的字符串?
当我们有==运算符时为什么是equals()方法?

我在这里尝试做的就是将文本字段小部件中输入的文本与给定字符串("abc")进行比较,然后将按钮文本设置为"错误传递"或"传递确定".但是,即使输入正确的"密码",按钮文本也始终设置为"错误传递".我究竟做错了什么?

public class FullscreenActivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_start);

    final Button button = (Button) findViewById(R.id.button);
    final EditText textedit = (EditText) findViewById(R.id.textedit);

    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            if (textedit.getText().toString() == "abc") 
                button.setText("pass ok"); // doesn't work
            else 
                button.setText("wrong pass");

        }
    });
}

...
Run Code Online (Sandbox Code Playgroud)

kos*_*osa 9

一个问题是:

if (textedit.getText().toString() == "abc") 
Run Code Online (Sandbox Code Playgroud)

应该

if (textedit.getText().toString().equals("abc") )
Run Code Online (Sandbox Code Playgroud)

更好的是:

 if ("abc".equals(textedit.getText().toString()))
Run Code Online (Sandbox Code Playgroud)

它始终是更好地使用equals(),而比较字符串/对象,而不是使用==

==检查参考相等性.equals()检查内容是否相等.