本次说一下数据存储方面知识,常用的有5种,如下:
1.SharedPreferences存储数据
2.文件存储数据
3.SQLite数据库存储数据
4.Content Provider存储数据
5.网络存储数据
1.SharedPreferences存储数据
a)一种轻型的Android数据存储方式,它的本质是基于XML文件存储
b)以key-value键值对的形式存储数据,通常用来存储一些简单的配置信息
示例一:
实现“存数据”、“取数据”和“清除数据”功能
存数据:SharedPreferences.Editor
取数据:SharedPreferneces
清除数据:editor.clear()--->commit()
示例二:
2.文件存储数据
内部存储
外部存储
内部存储的读写操作
a. openFileOutput(String name,int mode)方法:写操作
b. openFileInput(String name)方法:读操作
外部存储的读写操作
判断SD卡是否存在
a. 获取SD卡的根目录 Environment.getExternalStorageDirectory().getAbsolutePath();
b. FileOutStream
c. 对SD卡的读写操作需要设置权限 android.permission.WRITE_EXTERNAL_STORAGE
3.SQLite数据库存储数据
a,SQLite数据库介绍 属于内部存储 2TB
b,SQLiteDatabase的相关方法 数据库的操作类(执行sql语句)
c,实现数据库增删改查操作
d,SQLite数据库与ListView控件的应用
(adapter.notifyDataSetChange()) SimpleCursorAdapter(adapter.changeCursor(cursor))
e,SQLiteOpenHelper类的使用 数据库的辅助类
1.创建或者打开数据库 -----得到SQLiteDatabase对象 openOrCreateDatabase
2.创建数据库表
1.表结构 构造sql语句,create table(_id integer primary key autoincrement,) id name age
2.执行sql语句 execSQL();
3.插入数据 insert(,,,,);
Insert into table(name,age) values(“”,10);
4.更新数据
a)update();
Update table set name=”” where _id =1
5.删除数据
a)delete();
Delete from
查询数据 query();
遍历
cursor.moveToFirst();
while(!cursor.isAfterLast()){
String name = cursor.getString(1);
int age = cursor.getInt(cursor.getColumnIndex("age"));
Log.e("Main", "name:"+name+",age:"+age);
cursor.moveToNext();
}
或者
while(cursor.moveToNext()){
String name = cursor.getString(1);
int age = cursor.getInt(cursor.getColumnIndex("age"));
Log.e("Main", "name:"+name+",age:"+age);
}
4.Content Provider存储数据
Android中的两个程序之间进行数据交换就是通过ContentProvider实现的。ContentProvider类实现了一组标准的方法接口,从而能够让其他的应用保存或读取此Content Provider的各种数据类型。在程序内可以通过实现Content Provider的抽象接口将自己的数据显示出来。外界可以通过这套标准、统一的接口和程序中的数据实现交互,既可以读取程序中的数据,也可以删除程序中的数据。
比较常见的接口是ContentResolver,外部程序可以通过ContentResolver接口访问ContentProvider提供的数据。在Activity中可以通过getContentResolver()得到当前应用的ContentResolver实例。ContentResolver提供的接口需要和ContentProvider中需要实现的接口相对应,常用的接口主要有以下几个:
// 通过Uri进行查询,返回一个Cursor
query(Uri uri, String[] projection, String selection, String[] selectionArgs,StringsortOrder);
// 将一组数据插入到Uri指定的地方
insert(Uri url, ContentValues values);
// 更新Uri指定位置的数据
updata(Uri uri, ContentValues values, String where, String[] selectionArgs);
// 删除指定Uri且符合一定条件的数据
delete(Uri url, String where, String[] selectionArgs);
5.网络存储数据
可以通过调用WebS