Android 如何验证用户

Android 如何验证用户,android,sqlite,Android,Sqlite,我正在创建一个日志应用程序,用户在其中输入用户名和密码。 如果数据库中存在用户名和密码,则会通过intent将用户带到新页面,否则会引发错误 主页 package com.loginappdemo; import android.app.Activity; import android.content.Intent; import android.database.Cursor; import android.os.Bundle; import android.view.View; impor

我正在创建一个日志应用程序,用户在其中输入用户名和密码。 如果数据库中存在用户名和密码,则会通过intent将用户带到新页面,否则会引发错误

主页

package com.loginappdemo;

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

public class MainPage extends Activity {
    EditText un, pw;
    Button login, register;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final DataBaseHandler db = new DataBaseHandler(this);
        un = (EditText) findViewById(R.id.username);
        pw = (EditText) findViewById(R.id.password);
        login = (Button) findViewById(R.id.login);
        login.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                String a=un.getText().toString();
                String b=pw.getText().toString();
                String data=db.selectData(a, b);


            }
        });
        register = (Button) findViewById(R.id.register);
        register.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent i = new Intent(MainPage.this, NewLogin.class);
                startActivity(i);

            }
        });

    }
} 
DATABASEHANDLER类

package com.loginappdemo;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class DataBaseHandler extends SQLiteOpenHelper {
    private static final String username = "username";
    private static final String password = "password";
    private static final String id = "id";
    private static final String db_name = "LOGINDEMO";
    private static final String table_name = "LOGINDETAILS";
    private static final int db_version = 1;
    private static final String create_table = " CREATE TABLE " + table_name
            + "(" + id + " INTEGER PRIMARY KEY AUTOINCREMENT, " + username
            + " VARCHAR(200)," + password + " VARCHAR(200) " + " ) ";

    public DataBaseHandler(Context context) {
        super(context, db_name, null, db_version);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate(SQLiteDatabase db) {

        // TODO Auto-generated method stub
db.execSQL(create_table);
    }

    @Override
    public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
        // TODO Auto-generated method stub

    }
public long insertData(String name,String password1){
    SQLiteDatabase db=getWritableDatabase();
    ContentValues cv=new ContentValues();
    cv.put(username, name);
    cv.put(password, password1);
    long id=db.insert(table_name, null, cv);
    return id;

}
public String selectData(String name,String password1){
    SQLiteDatabase db=getWritableDatabase();
    String[] col={ username, password};
    String[] args={ name, password1};
    StringBuffer b=new StringBuffer();
    Cursor cursor=db.query(table_name, col, username + " =?  AND "  +password+ " =? ", args, null, null, null);
    String s1= cursor.getString(1);
    String s2=cursor.getString(2);
    b.append(s1 + " " + s2 + "\n" );
    return b.toString();

}
}

你可以用任何一种方法

public int selectData(String name,String password1)
{
    SQLiteDatabase db=getWritableDatabase();
    String[] col={ username, password};
    String[] args={ name, password1};
    StringBuffer b=new StringBuffer();
    Cursor cursor=db.query(table_name, col, username + " =?  AND "  +password+ " =? ", args, null, null, null);
    cursor.moveToFirst();
    return cursor.getCount();
}
onClick()方法中

if ( db.selectData(a, b) > 0 ) 
{
     // Launch second Activity  
}
else
{
     // Display Toast Msg "Invalid Username/Password";
}
这样试试看

boolean res = dbh.GetData(s1, s2);
if(res == true) {
    Intent in=new Intent(LoginActivity.this,nextActivity.class);
    startActivity(in);                      
} 
else {                  
    Toast.makeText(MainActivity.this, "Login failed", Toast.LENGTH_SHORT).show();
}
dbh
是您的
DataBaseHandler
类对象,然后

public boolean GetData(String uname, String pass)
{
    SQLiteDatabase dbc = this.getReadableDatabase();
    Cursor c1 =  dbc.query(
            TABLE_MIS2,
            null,
            DatabaseHandler.KEY_USERID  + "=? AND " + DatabaseHandler.KEY_PWD + "=?",
            new String[] { uname, pass },
            null,
            null,
            null);
    return (c1.getCount() >= 1);
}

用您的变量替换变量名并重试。

好的,有什么问题吗??o_Oche更改活动名称和所有内容,无论这只是简单的演示。@anuj,很高兴我能帮助你。快乐编码。