Java/Android编程/EditText -> getText().toString() 将EditText中输入的文本转换成字符串的方法。

3
我在这里想做的就是比较一个文本框中输入的文本与给定的字符串("abc"),然后将按钮文本设置为"wrong pass"或"pass ok"。然而,即使我输入了正确的"password",按钮文本也总是被设置为"wrong pass"。我做错了什么?
可能重复:
如何在Java中比较字符串?
当我们有==运算符时,为什么需要equals()方法?

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个回答

9

一个问题是:

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

应该是

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

更好的是:
 if ("abc".equals(textedit.getText().toString()))

在比较字符串/对象时,使用equals()比使用==更好。

==检查引用相等,而equals()检查内容相等。


非常感谢。我还有很多要学习的 ;) - Đinh Carabus

4

在Java/Android中,你不能使用==来比较字符串,必须使用equals()方法:

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

您可以在如何在Java中比较字符串?中找到一个很好的关于为什么的解释。


我会看一下。谢谢! - Đinh Carabus

4

尝试使用“equals”。

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

}

谢谢!现在我也知道什么是Toast :) - Đinh Carabus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接