在Android中检查用户名和密码

6

我有一个用户名和密码字段,现在需要在Android中检查并将用户重定向到下一页。

    public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);   
         setContentView(R.layout.main);
         final EditText loginText = (EditText) findViewById(R.id.widget44);
         final EditText loginPassword = (EditText) findViewById(R.id.widget47);
         final Button button = (Button) findViewById(R.id.widget48);
            button.setOnClickListener(new View.OnClickListener() {
                public void onClick(View view) {
                 Intent myIntent = null;
                 if(loginText.getText().equals("admin") && 
loginPassword.getText().equals("admin")) {
                  System.out.println("Entering");
                  myIntent = new Intent(view.getContext(), Page1.class);
                 } else {

                 }
                 startActivity(myIntent);
                }
            });
        }

现在我正在通过硬编码的方式进行检查,但这对我也没有用。为什么?我通常像这样在Java中检查,为什么在Android中不能以同样的方式接受我呢?

3个回答

5
我认为这是因为EditText#getText()返回的是一个Editable对象。请尝试:
if(loginText.getText().toString().equals("admin") && 
    loginPassword.getText().toString().equals("admin")) {
    ...
}

1
现在如果我需要从数据库中检索数据,该如何进行呢?有没有什么想法或示例可以提供参考? - theJava

2

您是否需要在文本元素中添加toString()
像这样:

if(loginText.getText().toString().equals("admin") && 
loginPassword.getText().toString().equals("admin")) {
...

编辑:neutrino更快(+1) :)

1

我只发现了一个小问题。在你的代码中,请按照以下方式进行更正,我认为它会起作用:

if(loginText.getText().**toString()**.equals("admin") && 
    loginPassword.getText()**.toString()**.equals("admin")) {
    System.out.println("Entering");
    myIntent = new Intent(view.getContext(), Page1.class);
} else {
    ...
}

请查看星号中的更正。


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