前言

大家好,给大家带来AndroidStudio制作个人资料界面模块以及SQLite数据库的使用的概述,希望你们喜欢

学习目标

  1. 掌握SQLite数据库的使用,能够实现用数据库来保存用户的信息;
  2. 学会运用好个人资料,以及个人资料的修改功能实现;
  3. 个人资料包括用户名,昵称,性别,签名,QQ号或个人社交账号的记录等。

数据库的创建

数据库类

该类继承 extends SQLiteOpenHelper

//核心代码
private static final int DB_VERSION = 1;
public static String DB_NAME = "bxg.db";
public static final String U_USER_INFO = "userInfo";
public SQLiteHelper(Context context){
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
/**
* 当这个SQLiteOpenHelper的子类类被实例化时会创建指定名的数据库,在onCreate中创建个人信息表
* **/
db.execSQL("CREATE TABLE IF NOT EXISTS " + U_USER_INFO + "( "
+ "_id INTEGER PRIMARY KEY AUTOINCREMENT, "
+ "userName VARCHAR, "
+ "nickName VARCHAR, "
+ "sex VARCHAR, "
+ "signature VARCHAR, "
+ "qq VARCHAR "
+ ")");
}
/**
* 当数据库版本号增加才会调用此方法
**/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + U_USER_INFO);
onCreate(db);
}

创建一个数据库工具类,用于读取、保存、修改用户信息

/**
* 构造方法,只有当类被实例化时候调用
* 实例化SQLiteHelper类,从中得到一个读写的数据库
**/
public DBUtils(Context context) {
helper = new SQLiteHelper(context);
db = helper.getWritableDatabase();
}
/**
* 得到这个类的实例
**/
public static DBUtils getInstance(Context context) {
if (instance == null) {
instance = new DBUtils(context);
}
return instance;
}
//保存个人资料信息
public void saveUserInfo(UserBean bean) {
ContentValues cv = new ContentValues();
cv.put("userName", bean.userName);
cv.put("nickName", bean.nickName);
cv.put("sex", bean.sex);
cv.put("signature", bean.signature);
cv.put("qq",bean.qq);
//Convenience method for inserting a row into the database.
//注意,我们是从数据库使用插入方法,传入表名和数据集完成插入
db.insert(SQLiteHelper.U_USER_INFO, null, cv);
}
//获取个人资料信息
public UserBean getUserInfo(String userName) {
String sql = "SELECT * FROM " + SQLiteHelper.U_USER_INFO + " WHERE userName=?";
//?和下面数组内元素会逐个替换,可以多条件查询=?and =?
//You may include ?s in where clause in the query, which will be replaced by the values from selectionArgs.
Cursor cursor = db.rawQuery(sql, new String[]{userName});
UserBean bean = null;
//Move the cursor to the next row.
while (cursor.moveToNext()) {
bean = new UserBean();
//根据列索引获取对应的数值,因为这里查询结果只有一个,我们也不需要对模型UserBean进行修改,
//直接将对应用户名的所有数据从表中动态赋值给bean
bean.userName = cursor.getString(cursor.getColumnIndex("userName"));
bean.nickName = cursor.getString(cursor.getColumnIndex("nickName"));
bean.sex = cursor.getString(cursor.getColumnIndex("sex"));
bean.signature = cursor.getString(cursor.getColumnIndex("signature"));
bean.qq = cursor.getString(cursor.getColumnIndex("qq"));
}
cursor.close();
return bean;
}
//修改个人资料信息,这里的key指代表字段,value表示数值
public void updateUserInfo(String key, String value, String userName) {
ContentValues cv = new ContentValues();
cv.put(key, value);
//Convenience method for updating rows in the database.
db.update(SQLiteHelper.U_USER_INFO, cv, "userName=?", new String[]
{userName});
}

嗯,接下来好像没什么了。就这样!大概界面可设计自行设计:

如果觉得不错,那就点个赞吧!❤️

总结

  • 本文讲了AndroidStudio制作个人资料界面模块以及SQLite数据库的使用,如果您还有更好地理解,欢迎沟通
  • 定位:分享 Android&Java知识点,有兴趣可以继续关注

AndroidStudio制作个人资料界面模块以及SQLite数据库的使用的更多相关文章

  1. AndroidStudio制作“我”的界面,设置,修改密码,设置密保和找回密码

    前言 大家好,给大家带来AndroidStudio制作"我"的界面,设置,修改密码,设置密保和找回密码的概述,希望你们喜欢 学习目标 掌握修改密码功能的开发,和实现用户密码的修改: ...

  2. python用sqlite3模块操作sqlite数据库-乾颐堂

    SQLite是一个包含在C库中的轻量级数据库.它并不需要独立的维护进程,并且允许使用非标准变体(nonstandard variant)的SQL查询语句来访问数据库. 一些应用可是使用SQLite保存 ...

  3. 使用System.Data.SQLite及其EF模块操作SQLite数据库(文件)

    SQLite for .NET (System.Data.SQLite) introduction An ADO.NET provider for SQLite including EF and Li ...

  4. QQ群消息监听并将消息存储到SQLite数据库中

    目录 一.前言 二.效果图 1.插件界面 2.SQLite数据库 3.QQ群消息 三.准备工作 1.CQA软件 2.CQA-SDK易语言版本 3.易语言破解版 4.使用到的相关模块 四.开始撸代码 五 ...

  5. AndroidStudio制作登录和注册功能的实现,界面的布局介绍

    前言 大家好,给大家带来AndroidStudio制作登录和注册功能的实现,界面的布局介绍的概述,希望你们喜欢 每日一句: Success is connecting with the world a ...

  6. AndroidStudio制作欢迎界面与应用图标

    前言 大家好,给大家带来AndroidStudio制作欢迎界面与应用图标的概述,希望你们喜欢 欢迎界面与应用图标 本项目使用Android Studio 3.0.1作为开发工具 activity_sp ...

  7. AndroidStudio制作底部导航栏以及用Fragment实现切换功能

    前言 大家好,给大家带来AndroidStudio制作底部导航栏以及用Fragment实现切换功能的概述,希望你们喜欢 学习目标 AndroidStudio制作底部导航栏以及用Fragment实现切换 ...

  8. 循序渐进开发WinForm项目(4)--Winform界面模块的集成使用

    随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...

  9. Android学习笔记(十二)——实战:制作一个聊天界面

    //此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! 运用简单的布局知识,我们可以来尝试制作一个聊天界面. 一.制作 Nine-Patch 图片 : Nine-Pa ...

随机推荐

  1. css:清楚html所有标签自带属性

    相信如果您动手写过网页的话,应该体会到有些标签会自带一些默认的样式,而这些样式或许又是我们不想要的,所以我们可以用以下代码清除所有标签的默认样式   html, body, div, span, ap ...

  2. hadoop分布式集群搭建(2.9.1)

    1.环境 操作系统:ubuntu16 jdk:1.8 hadoop:2.9.1 机器:3台,master:192.168.199.88,node1:192.168.199.89,node2:192.1 ...

  3. [C语言]进阶|指针与字符串

    ------------------------------------------------------------------------------------ 回顾:[C语言]指针与字符串 ...

  4. SQL Server中多表连接时驱动顺序对性能的影响

    本文出处:http://www.cnblogs.com/wy123/p/7106861.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错 ...

  5. 深入理解Jvm 虚拟机

    参考: 内存模型:https://blog.csdn.net/qq_34280276/article/details/52783096 类加载原理:https://nomico271.github.i ...

  6. gcc 与 g++的区别

    原文: http://www.cnblogs.com/wb118115/p/5969775.html ------------------------------------------------- ...

  7. node.js中Buffer缓冲器的使用

    一.什么是Buffer Buffer缓冲器是用来存储输入和输出数据的一段内存.js语言没有二进制数据类型,在处理TCP和文件流的时候,就不是很方便了. 所以node.js提供了Buffer类来处理二进 ...

  8. etcd-v2第三集

    简单说下golang的etcd接口例子.etcd api有v2(http+json)和v3(grpc)两个版本,目前大家都用v2,所以... v2: https://github.com/coreos ...

  9. python基础之Day7part1集合

    一.集合 1.定义 s=set() 2.特点 每个元素必须是不可变类型,但集合本身是可变类型的,有add和remove等功能 3.用途 去重(原理:for循环if判断元素是否已存在,不存在则追加) 关 ...

  10. centos7切换图像界面和dos界面

    在图形界面使用 ctrl+alt+F2切换到dos界面 dos界面 ctrl+alt+F2切换回图形界面 在命令上 输入 init 3 命令 切换到dos界面 输入 init 5命令 切换到图形界面 ...