共3个页面:注册,确认,登陆。
注册有两种可能。1.用户名已存在,提示更改用户名(select语句) 2.注册成功(insert语句)
登陆有两种可能。(select语句)1.用户名和密码不匹配 2.登陆成功
操作步骤:
一、数据库的准备工作MyDatabaseHelper.java
public class MyDatabaseHelper extends SQLiteOpenHelper {
final String CREATE_TABLE_SQL = "create table userlist(_id integer primary key autoincrement,name,passwd,gender)";
public MyDatabaseHelper(Context context, String name, int version) {
super(context, name, null, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE_SQL);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}
}
android自带的数据库SQLite有两个非常重要的类。SQLiteOpenHelper,SQLiteDatabase。
在这段代码,新建一个数据库,在数据库里新建一个表。
二、在用到数据库的每一个.java中,先写两句话
MyDatabaseHelper dbHelper = new MyDatabaseHelper(register_index.this, "userlist.db", 1);
SQLiteDatabase db = dbHelper.getReadableDatabase();
三、select语句和insert语句
select语句
String sql = "select * from userlist where name='" + Name + "' and passwd='" + Passwd + "'";
Cursor cursor = db.rawQuery(sql, null);
if (!cursor.moveToNext()){}
else{}
Name和Passwd是String类型,注意这里必须写成”+Name+”
insert语句
insertData(db, Name, Passwd, Gender);
private void insertData(SQLiteDatabase db, String name, String passwd, String gender) {
db.execSQL("insert into userlist values(null,?,?,?)", new String[]{name, passwd, gender});
}
写一个函数insertData。
四、还有2个补充。
第1,带数据的跳转。
发送
Intent intent = new Intent(register_index.this, result.class);
Bundle data = new Bundle();
data.putString("name", Name);
data.putString("passwd", Passwd);
data.putString("gender", Gender);
intent.putExtras(data);
startActivity(intent);
分3步。1.new Bundle 2.放入数据putXXX 3.把bundle绑在intent上(putExtras)
接收
Bundle data = getIntent().getExtras();
String Name = data.getString("name");
String Passwd = data.getString("passwd");
String Gender = data.getString("gender");
分2步。1.得到intent,然后得到intent里的bundle。2.得到bundle里的数据(getXXX)。
第2,调试经常用到Toast
Toast.makeText(register_index.this, "用户名已存在,请更改用户名!", Toast.LENGTH_SHORT).show();
附录:
register.java
public class login extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
findViews();
setListeners();
}
private EditText name;
private EditText passwd;
private Button login;
private Button register;
private void findViews() {
name = (EditText) findViewById(R.id.name);
passwd = (EditText) findViewById(R.id.passwd);
login = (Button) findViewById(R.id.login);
register = (Button) findViewById(R.id.register);
}
private void setListeners() {
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String Name = name.getText().toString().trim();
String Passwd = passwd.getText().toString().trim();
MyDatabaseHelper dbHelper = new MyDatabaseHelper(login.this, "userlist.db", 1);
SQLiteDatabase db = dbHelper.getReadableDatabase();
String sql = "select * from userlist where name='" + Name + "' and passwd='" + Passwd + "'";
Cursor cursor = db.rawQuery(sql, null);
if (!cursor.moveToNext())
Toast.makeText(login.this, "用户名与密码不匹配,请重新输入!", Toast.LENGTH_SHORT).show();
else
Toast.makeText(login.this, "登陆成功!", Toast.LENGTH_SHORT).show();
}
});
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(login.this, register_index.class);
startActivity(intent);
}
});
}
}
result.java
public class result extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_result);
findViews();
showResults();
setListeners();
}
private TextView name;
private TextView passwd;
private TextView gender;
private Button insert;
private void findViews() {
name = (TextView) findViewById(R.id.name);
passwd = (TextView) findViewById(R.id.passwd);
gender = (TextView) findViewById(R.id.gender);
insert = (Button) findViewById(R.id.insert);
}
private void showResults() {
Bundle data = getIntent().getExtras();
name.setText("您的用户名为:" + data.getString("name"));
passwd.setText("您的密码为:" + data.getString("passwd"));
gender.setText("您的性别为:" + data.getString("gender"));
}
private void setListeners() {
insert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MyDatabaseHelper dbHelper = new MyDatabaseHelper(result.this, "userlist.db", 1);
SQLiteDatabase db = dbHelper.getWritableDatabase();
Bundle data = getIntent().getExtras();
String Name = data.getString("name");
String Passwd = data.getString("passwd");
String Gender = data.getString("gender");
insertData(db, Name, Passwd, Gender);
Toast.makeText(result.this, "注册成功!", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(result.this, login.class);
startActivity(intent);
}
});
}
private void insertData(SQLiteDatabase db, String name, String passwd, String gender) {
db.execSQL("insert into userlist values(null,?,?,?)", new String[]{name, passwd, gender});
}
}
login.java
public class login extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
findViews();
setListeners();
}
private EditText name;
private EditText passwd;
private Button login;
private Button register;
private void findViews() {
name = (EditText) findViewById(R.id.name);
passwd = (EditText) findViewById(R.id.passwd);
login = (Button) findViewById(R.id.login);
register = (Button) findViewById(R.id.register);
}
private void setListeners() {
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String Name = name.getText().toString().trim();
String Passwd = passwd.getText().toString().trim();
MyDatabaseHelper dbHelper = new MyDatabaseHelper(login.this, "userlist.db", 1);
SQLiteDatabase db = dbHelper.getReadableDatabase();
String sql = "select * from userlist where name='" + Name + "' and passwd='" + Passwd + "'";
Cursor cursor = db.rawQuery(sql, null);
if (!cursor.moveToNext())
Toast.makeText(login.this, "用户名与密码不匹配,请重新输入!", Toast.LENGTH_SHORT).show();
else
Toast.makeText(login.this, "登陆成功!", Toast.LENGTH_SHORT).show();
}
});
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(login.this, register_index.class);
startActivity(intent);
}
});
}
}