简体   繁体   English

SQLite用户名检查与EditText值

[英]SQLite username check with EditText value

Hi i have bit problem in login actually i"m trying to tesing login by checking username from databse and edit text value but its not working . the following is my codes . i'm bit confussed about to get the EditTextvalue 嗨,我在登录时遇到了一些问题,实际上我正在尝试通过检查数据库中的用户名并编辑文本值来测试登录,但是它不起作用,以下是我的代码。我有点困惑要获取EditTextvalue

package com.example.employeemanager;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class Login extends Activity {

    SQLiteDatabase db;
    EditText unameedt;
    String unam;
    String pass;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);
        Button logbtn = (Button) findViewById(R.id.loginbtn);
        Button signup = (Button) findViewById(R.id.signup);
        EditText unameedt = (EditText) findViewById(R.id.editText1);
        EditText passedt = (EditText) findViewById(R.id.editText2);
        db = openOrCreateDatabase("Employeemanager", MODE_PRIVATE, null);
        unam = unameedt.getText().toString();
        pass = passedt.getText().toString();
        logbtn.setOnClickListener(new OnClickListener()

        {

            public void onClick(View v) {
                Cursor c = db.rawQuery(
                        "SELECT  username, password from Employee", null);

                if (c != null) {

                    if (c.moveToFirst()) {
                        do {
                            String uname = c.getString(c
                                    .getColumnIndex("username"));
                            String upass = c.getString(c
                                    .getColumnIndex("password"));

                            if (uname.equals(unam)) {
                                StartActivity(new Intent(Login.this, Home.class));

                            }

                        } while (c.moveToNext());

                    }

                }

            }
        });

        signup.setOnClickListener(new OnClickListener()

        {

            @Override
            public void onClick(View v) {
                startActivity(new Intent(Login.this, Emp_signup.class));
            }

        });

    }

}

Put your 把你的

unam = unameedt.getText().toString();
pass=passedt.getText().toString();

into butonClick event 进入butonClick事件

logbtn.setOnClickListener(new OnClickListener()

{
unam = unameedt.getText().toString();
pass=passedt.getText().toString();

});

Its simple but looks like a big thing while start learning Android. 它简单但在开始学习Android时看起来像一件大事。 What you doing now is you got the value in onCreate 您现在所要做的就是在onCreate中获得价值

    unam = unameedt.getText().toString();
    pass = passedt.getText().toString();

So, now the uname and pass is empty because while onCreate there is no values set to the corresponding EditText . 因此,现在unamepassempty因为在onCreate时没有将值设置为相应的EditText

In OnClick Method you comparing the Value from Edittext and from database OnClick方法中,您比较Edittext和数据库中的值

    if (uname.equals(unam)) {//if(usernamefromDatabase.equals(emptyValue))
         StartActivity(new Intent(Login.this, Home.class)); 
      }

Thats where the problem is. 那就是问题所在。

What you want to do now is get the unam and pass values in onClick 您现在想要做的就是在onClick中获取unampass

    unam = unameedt.getText().toString();
    pass = passedt.getText().toString();

   if (uname.equals(unam)) {//if(usernamefromDatabase.equals(valueyouentered))
         StartActivity(new Intent(Login.this, Home.class)); 
      }

It should work now. 现在应该可以工作了。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM