使用EditText值检查SQLite用户名

时间:2014-01-21 09:28:45

标签: java android sqlite

嗨我在登录时有点问题我实际上是试图通过检查数据库中的用户名来编辑登录并编辑文本值但它不起作用。以下是我的代码。 我有点想要获得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));
            }

        });

    }

}

2 个答案:

答案 0 :(得分:5)

点亮你的

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

进入butonClick事件

logbtn.setOnClickListener(new OnClickListener()

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

});

答案 1 :(得分:0)

它很简单,但在开始学习Android时看起来很重要。你现在做的是你在onCreate中获得了价值

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

因此,现在unamepassempty,因为在onCreate时没有设置为相应EditText的值。

OnClick方法中,您比较Edittext和数据库中的值

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

问题出在哪里。

您现在要做的是获取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)); 
      }

现在应该可以了。