今天完成作业的其他功能。昨天已经实现了注册功能,接下来就要实现登录功能了。其实登录功能也很好实现,但是在登录的时候要满足老师的要求,即可以记住登录。开始,我是在网上搜索相关的记住登录的功能,但是都没有找到,因此我就要自己想办法解决这个问题。把问题进行分解,既然要保存登录,那么就要将信息保存起来,因此我又联想到了是使用数据库保存数据,既然我可以设置一张用户信息表,那么我也可以在创建一张表用来记录上次的登录用户,在用户登录之前先从这一张表中读取信息,如果读取到了信息就使用这个用户的ID进行登录,以此来实现用户记住登录的功能。有了思路,就可以设计代码实现功能,其中的登录代码如下:
private DataBase databaseHelper; //用于创建帮助器对象
private SQLiteDatabase db; //用于创建数据库对象
private static final String name = "JZ.db"; //数据库名称
private static final int version = 1; //数据库版本
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
List<LASTBean>list=new ArrayList<LASTBean>();
databaseHelper = new DataBase(this, name, null, version);
DataBase moh=new DataBase(this,"JZ.db", null, 1);
SQLiteDatabase db = moh.getReadableDatabase(); // 以只读的方式打开数据库
String sql = "select * from lastDL;";
Cursor cursor = db.rawQuery(sql, null);
while (cursor.moveToNext()) {
String ID = cursor.getString(cursor.getColumnIndex("xuehao"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String phone=cursor.getString(cursor.getColumnIndex("phone"));
String banji=cursor.getString(cursor.getColumnIndex("banji"));
String cishu=cursor.getString(cursor.getColumnIndex("cishu"));
LASTBean person = new LASTBean(ID,name,phone,banji,cishu);
list.add(person); // 添加到数组
}
cursor.close();
if(list.size()!=0&&list.get(0).getCishu().equals("1")){
Intent intent = new Intent(this,YONGHU.class);
intent.putExtra("ThisID",list.get(0).getID());
startActivity(intent);
finish();
}
if(list.size()!=0&&list.get(0).getCishu().equals("2")){
db.execSQL("update LastDL set cishu= ? where xuehao=?",new Object[]{"1",list.get(0).getID()});
}
}
public void denglu(View view){
Intent intent = new Intent(this,DENGLU.class);
startActivity(intent);
}
public void ZHUCE(View view){
Intent intent = new Intent(this,ZHUCE.class);
startActivity(intent);
}
public void tuichu(View view){
System.exit(0);
}
在这个界面含有注册与登录还有退出功能,如果是没有记住登录的情况下会进入这个界面,让用户进行不同的操作,这里已经读取了数据库获得了上一次用户登录的信息并且对上次登录信息进行调整以适合其中的逻辑,