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

时间:2013-01-10 19:15:05

标签: java android android-edittext

  

可能重复:
  How do I compare strings in Java?
  why equals() method when we have == operator?

我要做的就是将文本字段小部件中输入的文本与给定字符串(“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");

        }
    });
}

...

3 个答案:

答案 0 :(得分:9)

一个问题是:

if (textedit.getText().toString() == "abc") 

应该是

if (textedit.getText().toString().equals("abc") )

更好:

 if ("abc".equals(textedit.getText().toString()))

在比较字符串/对象而不是使用equals()

时,最好使用==

==检查引用相等性。 equals()检查内容是否相等。

答案 1 :(得分:4)

您无法将Java / Android中的String与==进行比较,您必须使用equals()

if (textedit.getText().toString().equals("abc")) 

您可以在How do I compare strings in Java?

中找到 why 的详细解释

答案 2 :(得分:4)

尝试使用“等于”。

 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);



    final Button button = (Button) findViewById(R.id.btnLogin);
    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
        EditText getpass = (EditText)findViewById(R.id.textedit);

            String pass = getpass.getText().toString();

            if(pass.equals("abc")){
                Toast toast = Toast.makeText(getApplicationContext(), "pass ok", Toast.LENGTH_SHORT);
                toast.show();



            }else{
                Toast toast = Toast.makeText(getApplicationContext(), "wrong pass", Toast.LENGTH_SHORT);
                toast.show();
            }
        }
    });

}