@H_301_1@一、前言
@H_301_1@ 昨天完善了登录注册的服务端。
今天利用sqlite数据库实现了记住用户登录状态的功能,当用户登录以后在数据库中插入用户数据,当用户点击退出登录之后,将数据删除,在启动APP的时候对本地数据库进行查询,如果有数据,则直接进入主页面,否则进入登录页面。遇到的困难是在记住用户已登录之后,用户ID参数的传导问题,通过了解query语法解决。
明天继续对细节以及一些页面进行美化改进。
@H_301_1@二、成果
@H_301_1@
@H_301_1@ 三、代码
@H_301_1@DataBaseHelper.java
package com.androIDlearing.tdtreehole.database;import androID.content.Context;import androID.database.sqlite.sqliteDatabase;import androID.database.sqlite.sqliteOpenHelper;import androID.util.Log;import androIDx.annotation.Nullable;/** * @Projectname: TDTreeHole * @Package: com.androIDlearing.tdtreehole.databasehelper * @Classname: DataBaseHelper * @Description: java类作用描述 * @Author: 武神酱丶 * @CreateDate: 2020/4/23 16:44 * @UpdateUser: 更新者 * @UpdateDate: 2020/4/23 16:44 * @UpdateRemark: 更新说明 * @Version: 1.0 */public class DataBaseHelper extends sqliteOpenHelper { private static final String DATA_BASE_name = "user"; private static final int VERSION = 1; private static final String TAG = "DataBaseHelper"; public DataBaseHelper(@Nullable Context context) { super(context, DATA_BASE_name, null, VERSION); } //创建数据库的回调 @OverrIDe public voID onCreate(sqliteDatabase db) { Log.d(TAG,"创建数据库..."); String sql = "create table "+DATA_BASE_name+"(ID integer primary key,username varchar(255),password varchar(255))"; db.execsql(sql); } //需要修改表结构时使用该方法 @OverrIDe public voID onUpgrade(sqliteDatabase db, int oldVersion, int newVersion) { //升级数据库的回调 }}VIEw Code
@H_301_1@Dao.java
package com.androIDlearing.tdtreehole.database;import androID.content.ContentValues;import androID.content.Context;import androID.database.Cursor;import androID.database.sqlite.sqliteDatabase;import androID.database.sqlite.sqliteOpenHelper;import androID.util.Log;/** * @Projectname: TDTreeHole * @Package: com.androIDlearing.tdtreehole.database * @Classname: Dao * @Description: java类作用描述 * @Author: 武神酱丶 * @CreateDate: 2020/4/23 16:49 * @UpdateUser: 更新者 * @UpdateDate: 2020/4/23 16:49 * @UpdateRemark: 更新说明 * @Version: 1.0 */public class Dao { private static final String TAG ="Dao" ; private final DataBaseHelper mHelper; private static final String DATA_BASE_name = "user"; //创建数据库 public Dao(Context context){ mHelper = new DataBaseHelper(context); } //插入数据 public voID insert(int ID,String username,String password){ sqliteDatabase db = mHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("ID",ID); values.put("username",username); values.put("password",password); db.insert(DATA_BASE_name,null,values); db.close(); } //查询数据 public int select(){ sqliteDatabase db = mHelper.getWritableDatabase(); int userID = 0; Cursor cursor = db.query(DATA_BASE_name,null,null,null,null,null,null); while (cursor.movetoNext()){ userID = cursor.getInt(cursor.getColumnIndex("ID")); } cursor.close(); db.close(); return userID; } //删除数据 public voID delete(){ sqliteDatabase db = mHelper.getWritableDatabase(); db.delete(DATA_BASE_name,null,null); db.close(); }}VIEw Code
@H_301_1@LunchActivity.java
package com.androIDlearing.tdtreehole.activity;import androID.content.Intent;import androID.os.Bundle;import androIDx.appcompat.app.AppCompatActivity;import com.androIDlearing.tdtreehole.database.Dao;import com.androIDlearing.tdtreehole.database.DataBaseHelper;import static java.lang.Thread.sleep;public class LunchActivity extends AppCompatActivity { private DataBaseHelper mDatabaseHelper; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate( savedInstanceState ); //app启动页的加载 new Thread( new Runnable( ) { @OverrIDe public voID run() { //耗时任务,比如加载网络数据 runOnUiThread(new Runnable() { @OverrIDe public voID run() { // 这里可以睡几秒钟,如果要放广告的话 try { sleep(2000); } catch (InterruptedException e) { e.printstacktrace(); } } }); } } ).start(); //初始化用户的登录状态 initState(); } private voID initState() { Dao dao = new Dao(this); //查询数据,如果数据库中有数据,跳转至MainActivity if (dao.select()!=0){ Intent intent = new Intent(LunchActivity.this, MainActivity.class); intent.putExtra("IDKey",dao.select()); startActivity(intent); LunchActivity.this.finish(); } //如果没有查询到数据,跳转至LoginActivity else { Intent intent = new Intent(LunchActivity.this, LoginActivity.class); startActivity(intent); LunchActivity.this.finish(); } }}VIEw Code
@H_301_1@四、今日团队链接
https://www.cnblogs.com/three3/p/12763763.html
总结以上是内存溢出为你收集整理的团队冲刺--第一阶段(七)全部内容,希望文章能够帮你解决团队冲刺--第一阶段(七)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)