上一节对欢迎模块进行了综述(可参见 10. 视频模块 进行了解),接下来将从视频模块开始详细介绍:
- [ “我”模块(一)之创建数据库]
- [“我”模块(一)之“我”]
- [“我”模块(一)之注册]
- [“我”模块(一)之登录]
- [“我”模块(一)之个人资料]
- [“我”模块(一)之个人资料修改]
知识点
- 掌握SQLite数据库的使用,能够使用数据库存储用户信息。
- 掌握“我”界面开发,能够展示用户基本信息以及该界面的功能。
- 掌握“登录”“注册”界面的开发,实现用户登录注册功能。
- 掌握“个人资料”以及“修改”界面的开发,实现用户信息的展示与修改功能。
创建数据库
任务综述:
根据“我”界面设计图可知,“我”模块中包含了用户信息,为了便于后续对用户信息进行增、删、改、查的操作,需要创建一个数据库把这些信息存储起来。
1. 创建SQLite数据库
任务分析:
由于“我”模块涉及用户信息,同时后续会对用户信息进行操作,因此需要创建一个数据库与个人信息表,把用户信息保存到数据库中。
任务实施:
(1)创建SQLiteHelper类。创建sqlite包,在包中创建SQLiteHelper并继承SQLiteOpenHelper类,同时重写onCreate()方法,该类用于创建newsdemo.db数据库。
(2)创建用户信息表。由于个人资料界面的数据需要单独的一个表储存,因此需要在onCreate()方法中通过执行一条建表的SQL语句创建用户信息表。
SQLiteHelper.java
public class SQLiteHelper extends SQLiteOpenHelper {
private static final int DB_VERSION = 1;
public static String DB_NAME = "newsdemo.db";
public static final String U_USERINFO = "userinfo"; //用户信息
// public static final String CONSTELLATION = "constellation";//十二星座信息
//收藏新闻信息
//public static final String COLLECTION_NEWS_INFO = "collection_news_info";
public SQLiteHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
/**
* 创建用户信息表
*/
db.execSQL("CREATE TABLE IF NOT EXISTS " + U_USERINFO + "( "
+ "_id INTEGER PRIMARY KEY AUTOINCREMENT, "
+ "userName VARCHAR, " //用户名
+ "nickName VARCHAR, " //昵称
+ "sex VARCHAR, " //性别
+ "signature VARCHAR," //签名
+ "head VARCHAR " //头像
+ ")");
/**
* 创建十二星座信息表
*/
// db.execSQL("CREATE TABLE IF NOT EXISTS " + CONSTELLATION + "( "
+ "_id INTEGER PRIMARY KEY AUTOINCREMENT, "
+ "c_id INT, " //星座id
+ "name VARCHAR, " //星座名称
+ "head VARCHAR, " //头像
+ "img VARCHAR," //图标
+ "icon VARCHAR," //白色图标
+"date VARCHAR," //日期
+"info VARCHAR," //星座信息
+"whole INT," //整体运势
+"love INT," //爱情运势
+"career INT," //事业学业
+"money INT," //财富运势
+"whole_info VARCHAR," //整体运势信息
+"love_info VARCHAR," //爱情运势信息
+"career_info VARCHAR," //事业学业信息
+"money_info VARCHAR," //财富运势信息
+"health_info VARCHAR" //健康运势信息
+ ")");
/**
* 创建收藏表
*/
//db.execSQL("CREATE TABLE IF NOT EXISTS " + COLLECTION_NEWS_INFO + "( "
+ "_id INTEGER PRIMARY KEY AUTOINCREMENT, "
+ "id INTEGER, " //新闻id
+ "type INTEGER, " //新闻类型
+ "userName VARCHAR," //用户名
+ "newsName VARCHAR, " //新闻名称
+ "newsTypeName VARCHAR," //新闻类型名称
+ "img1 VARCHAR, " //图片1
+ "img2 VARCHAR, " //图片2
+ "img3 VARCHAR, " //图片3
+ "newsUrl VARCHAR " //新闻链接地址
+ ")");
}
/**
* 当数据库版本号增加时才会调用此方法
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + U_USERINFO);
//db.execSQL("DROP TABLE IF EXISTS " + CONSTELLATION);
//db.execSQL("DROP TABLE IF EXISTS " + COLLECTION_NEWS_INFO);
onCreate(db);
}
}
2. 创建DBUtils类
任务分析:
当读取用户资料或者对用户进行更改时,需要对数据库进行操作,因此需要创建一个DBUtils工具类专门用于操作数据库。
任务实施:
在utils包中包中创建DBUtils。
DBUtils.java
public class DBUtils {
private static DBUtils instance = null;
private static SQLiteHelper helper;
private static SQLiteDatabase db;
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;
}
3. 创建UserBean
任务分析:
“我”模块涉及用户信息,用户具有用户名、昵称、性别等属性,为了便于后续对这些属性进行操作,需要创建一个UserBean类存放这些属性。
UserBean.java
public class UserBean {
private String userName; //用户名
private String nickName; //昵称
private String sex; //性别
private String signature; //签名
private String head; //头像
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getSignature() {
return signature;
}
public void setSignature(String signature) {
this.signature = signature;
}
public String getHead() {
return head;
}
public void setHead(String head) {
this.head = head;
}
}
网友评论