简单的本地注册与登陆的功能

  实现了简单的本地注册与登陆的功能,具体操作流程如下:

   1.实现SQLiteOpenHelper的类并继承其方法,详细介绍一下这个类每个方法的功能与使用

    SQLiteOpenHelper是一个辅助类来管理数据库的创建和版本。 可以通过继承这个类,实现它的一些方法来对数据库进行一些操作。 所有继承了这个类的类都必须实现下面这样的一个构造方法: 

 

public DbHelper(Context context) {
super(context, NAME, null, VERSION);
}
第一个参数:Context类型,上下文对象。 
第二个参数:String类型,数据库的名称
第三个参数:CursorFactory类型 设置为空
第四个参数:int类型,数据库版本
下面是SQLiteOpenHelper这个类的几个方法的使用介绍:
getReadableDatabase() synchronized SQLiteDatabase 创建或打开一个数据库 可以通过这两个方法返回的SQLiteDatabase对象对数据库进行一系列的操作,如新建一个表,插入一条数据等 
getWritableDatabase() synchronized SQLiteDatabase 创建或打开一个可以读写的数据库 
onCreate(SQLiteDatabase db) abstract void 第一次创建的时候调用 
onOpen(SQLiteDatabase db) void 打开数据库 
onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion) abstract void 升级数据库 
close() synchronized void 关闭所有打开的数据库对象 
         在写数据库语言时要注意不要写错了。
    2.创建user类,声明一些变量
public class User {

private int id;
private String username;
private String password;
private String sex;
private int age;
public User() {
super();
}
public User(int id, String username, String password, String sex, int age) {
super();
this.id = id;
this.username = username;
this.password = password;
this.sex = sex;
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
3.登陆注册的适配类
public class UserService {

private DbHelper dbHelper;

public UserService(Context context) {
dbHelper = new DbHelper(context);
}
/**
*
* @param username
* @param password
* @return
*/
public boolean Login(String username, String password) {
SQLiteDatabase sqLiteDatabase = dbHelper.getReadableDatabase();
String sql = "select * from user where username = ? and password = ? ";
Cursor rawQuery = sqLiteDatabase.rawQuery(sql, new String[] { username,
password });
if (rawQuery.moveToFirst() == true) {
rawQuery.close();
return true;
}
return false;
}
/**
*
* @param user
* @return
*/

public boolean Register(User user) {
SQLiteDatabase sqLiteDatabase = dbHelper.getReadableDatabase();
String sql = "insert into user (username,password,sex,age) values (?,?,?,?)";
Object obj[] = { user.getUsername(), user.getPassword(), user.getSex(),
user.getAge() };
sqLiteDatabase.execSQL(sql, obj);
return true;
}
}
    4 登陆功能的部分代码  
  
mLogin.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {
String userName = mUsername.getText().toString().trim();
String passWord = mPassword.getText().toString().trim();

UserService userService = new UserService(UserLoginAcvivity.this);

boolean flag = userService.Login(userName, passWord);
if (flag) {
Toast.makeText(UserLoginAcvivity.this, "登录成功",
Toast.LENGTH_SHORT).show();
Intent intent = new Intent(UserLoginAcvivity.this, MainActivity.class);
startActivity(intent);

} else {
Toast.makeText(UserLoginAcvivity.this, "登录失败",
Toast.LENGTH_SHORT).show();
}

}
});
    5注册功能的部分代码:

mUsername = (EditText)findViewById(R.id.username);
mPassword = (EditText)findViewById(R.id.password);
mReturn = (Button) findViewById(R.id.return_btn);
mSex = (EditText)findViewById(R.id.sex);
mAge = (EditText)findViewById(R.id.age);

mRegister = (Button)findViewById(R.id.register);

mRegister.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {

String userName = mUsername.getText().toString().trim();
String passWord = mPassword.getText().toString().trim();
String Sex = mSex.getText().toString().trim();
int Age = Integer.parseInt(mAge.getText().toString().trim());

/* Log.i("TAG", userName);
Log.i("TAG", passWord);
Log.i("TAG", Sex);*/

User user = new User();
user.setUsername(userName);
user.setPassword(passWord);
user.setSex(Sex);
user.setAge(Age);
///*
// System.out.println(user.getUsername());
// System.out.println(user.getPassword());
// System.out.println(user.getSex());
// System.out.println(user.getAge());*/

UserService userService = new UserService(getBaseContext());
boolean flag = userService.Register(user);
if (flag) {
Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(RegisterActivity.this,"注册失败", Toast.LENGTH_SHORT).show();
}

}
});
mReturn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.setClass(RegisterActivity.this,UserLoginAcvivity.class);
startActivity(intent);
}
});

}
}
    注册登陆部分功能在逐渐完善中




posted @ 2017-05-31 19:50  荒、年  阅读(257)  评论(0编辑  收藏  举报