1.SharePreferences
Preference数组主要是key-value数据对
SharePreferences接口主要负责读应用程序的Preference数据,通过如下方法访问key-value数据
boolean contains(String key)
abstract Map<String,?> getAll() 获取SharedPreferences数据里面的全部的key-value对
boolean getXxx(String key,xxx defValue) 获取指定的key对应的Value,如果key不存在,则返回默认的defValue
SharedPerferences接口本身没有提供写入数据的能力,而是通过SharedPreferences的内部接口,SharedPreferences调用edit()方法即可获取它所对应的Editor对象。其提供了如下方法向SharedPreferences写入数据
SharedPreferences.Editor clear() 清空SharedPreferences里所有的数据
SharedPreferences.Editor putXxx(String key,xxx value)向SharedPreferences存入指定key对应的数据
SharedPreferences.Editor remove(String key) 删除SharedPreferences里指定key对应的数据
boolean commit() 当Editor编辑完成后,调用该方法提交
只能通过getSharedPreferences(String name,int mode)方法来获取SharedPreferences实例
该方法的第二个参数支持如下几个值
Context.MODE_PRIVATE指定该SharedPreferences的数据只能被本应用程序读写
Context.MODE_WORLD_READABLE指定该SharedPreferences可以被其它应用程序读
Context.MODE_WORLD_WRITEABLE 指定该SharedPreferences的数据可以被其它应用程序写
2.File存储
1.openFileOutput和openFileInput
Context提供了如下两个方法来打开应用程序的数据文件夹里面的文件IO流
FileInputStream openFileInput(String name)打开应用程序的数据文件夹下的name文件对应的输入流
FileOutputStream openFileOutput(String name,int mode) 打开应用程序的数据文件夹下的name文件对应的输出流,通常结合PrintStream使用
MODE_PRIVATE 该文件只能被当前程序读写
MODE_APPEND 以追加的方式打开文件,应用程序可以向该文件追加内容
MODE_WORLD_READABLE该文件内容可以被其它程序读取
MODE_WORLD_WRITEABLE 该文件的内容可以被其它程序写
除此之外Context还提供了如下方法访问数据文件夹
getDir(String name,int mode) 在应用程序的数据文件夹下创建或获取name对应的子目录
File getFilesDir() 获取应用程序的数据文件夹的绝对路径
String[] fileList() 返回应用程序的数据文件夹下的全部文件
deleteFile(String) 删除应用程序的数据文件夹下的指定文件
3.读写SD卡上的文件
1.调用Environment的getExternalStorageState()方法判断手机上是否插入SD卡,并且应用程序具有读写SD卡的权限
//如果手机已经插入SD卡,并具有权限则返回true
Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)
2.调用Environment的getExternalStorageDirectory()方法获取外部存储器,也就是SD卡的目录
3.使用FileInputStream和FileOutputStream ,FielReader或FileWriter来读写SD卡里的文件
必须在AnddroidManifest.xml中添加权限
<!--在sd卡中创建与删除文件权限-->
<user-permission andriod:name="android:permission.MOUNT_UNMOUNT_FILESYSTEMS">
<!--向SD卡写入数据权限-->
<uses-permission android:name="android:permission.WRITE_EXTERNAL_STORAGE">
4.SQLite数据库
SQLiteDatabase简介
SQLiteDatabase提供了如下静态方法打开一个文件对应的数据库
static SQLiteDatabase openDatabase(String path,SQLiteDatabase.CursorFactory factory ,int flags)打开path路径下的SQLite数据库
static SQLiteDatabase openOrCreateDatabase(File file,SQLiteDatabase.CursorFactory factory)
static SQLiteDatabase openOrCreateDatabse(String path,SQLiteDatabase.CursorFactory factory)
SQLiteDatabase可以看做是Connection和Statement的混合体,而Cursor可以看做是ResultSet
1.创建数据库和表
SQLiteDatabase.openOrCreateDatabase("/mnt/db/temp.db3",null);
调用execSQL()方法可执行任意的SQL语句
2.使用SQL语句操作
使用SQLiteDatabase进行数据库操作的步骤如下
1.获取SQLiteDatabase对象
2.调用SQLiteDatabase的方法执行SQL语句
3.调用SQL语句的执行结果,比如用SimpleCursorAdapter封装Cursor
4.关闭SQLiteDatabase,回收资源
SQLiteOpenHelper类
实际应用通常继承SQLiteOpenHelper,通过子类的getReadableDatabase().getWritableDatabase()方法打开数据库
提供两个方法onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion)用于数据库的创建和版本更新,子类通常需要覆盖两个方法
3.手势(Gesture)
GestureDetector类
创建GestureDetector时需要传入一个GestureDetector.OnGestureListener实例
GestureDetector.OnGestureListener里面包含的事件处理方法如下
boolean onDown(MotinEvent e) 当触碰事件按下时触发该方法
boolean onFling(MotionEvent e1,MotionEvent e2,float velocity X,float velocity Y) 其中velocity x,velocity y 是代表动作在横向和纵向的速度
abstract void onLongPress(MotionEvent e)当手指在屏幕上长按时触发此方法
boolean onScroll(MotionEvent e1,MotinEvent e2,float distanceX,float distanceY) 当用户手指在屏幕上滚动时触发该方法
void onShowPress(MotionEvent e) 当用户手指按下,未移动和松开时触发该方法
boolean onStringTapUp(MotionEvent e) 用户轻击触发
4.自动朗读
TextToSpeech(Context context,TextToSpeech.OnInitListener listener)
Preference数组主要是key-value数据对
SharePreferences接口主要负责读应用程序的Preference数据,通过如下方法访问key-value数据
boolean contains(String key)
abstract Map<String,?> getAll() 获取SharedPreferences数据里面的全部的key-value对
boolean getXxx(String key,xxx defValue) 获取指定的key对应的Value,如果key不存在,则返回默认的defValue
SharedPerferences接口本身没有提供写入数据的能力,而是通过SharedPreferences的内部接口,SharedPreferences调用edit()方法即可获取它所对应的Editor对象。其提供了如下方法向SharedPreferences写入数据
SharedPreferences.Editor clear() 清空SharedPreferences里所有的数据
SharedPreferences.Editor putXxx(String key,xxx value)向SharedPreferences存入指定key对应的数据
SharedPreferences.Editor remove(String key) 删除SharedPreferences里指定key对应的数据
boolean commit() 当Editor编辑完成后,调用该方法提交
只能通过getSharedPreferences(String name,int mode)方法来获取SharedPreferences实例
该方法的第二个参数支持如下几个值
Context.MODE_PRIVATE指定该SharedPreferences的数据只能被本应用程序读写
Context.MODE_WORLD_READABLE指定该SharedPreferences可以被其它应用程序读
Context.MODE_WORLD_WRITEABLE 指定该SharedPreferences的数据可以被其它应用程序写
2.File存储
1.openFileOutput和openFileInput
Context提供了如下两个方法来打开应用程序的数据文件夹里面的文件IO流
FileInputStream openFileInput(String name)打开应用程序的数据文件夹下的name文件对应的输入流
FileOutputStream openFileOutput(String name,int mode) 打开应用程序的数据文件夹下的name文件对应的输出流,通常结合PrintStream使用
MODE_PRIVATE 该文件只能被当前程序读写
MODE_APPEND 以追加的方式打开文件,应用程序可以向该文件追加内容
MODE_WORLD_READABLE该文件内容可以被其它程序读取
MODE_WORLD_WRITEABLE 该文件的内容可以被其它程序写
除此之外Context还提供了如下方法访问数据文件夹
getDir(String name,int mode) 在应用程序的数据文件夹下创建或获取name对应的子目录
File getFilesDir() 获取应用程序的数据文件夹的绝对路径
String[] fileList() 返回应用程序的数据文件夹下的全部文件
deleteFile(String) 删除应用程序的数据文件夹下的指定文件
3.读写SD卡上的文件
1.调用Environment的getExternalStorageState()方法判断手机上是否插入SD卡,并且应用程序具有读写SD卡的权限
//如果手机已经插入SD卡,并具有权限则返回true
Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)
2.调用Environment的getExternalStorageDirectory()方法获取外部存储器,也就是SD卡的目录
3.使用FileInputStream和FileOutputStream ,FielReader或FileWriter来读写SD卡里的文件
必须在AnddroidManifest.xml中添加权限
<!--在sd卡中创建与删除文件权限-->
<user-permission andriod:name="android:permission.MOUNT_UNMOUNT_FILESYSTEMS">
<!--向SD卡写入数据权限-->
<uses-permission android:name="android:permission.WRITE_EXTERNAL_STORAGE">
4.SQLite数据库
SQLiteDatabase简介
SQLiteDatabase提供了如下静态方法打开一个文件对应的数据库
static SQLiteDatabase openDatabase(String path,SQLiteDatabase.CursorFactory factory ,int flags)打开path路径下的SQLite数据库
static SQLiteDatabase openOrCreateDatabase(File file,SQLiteDatabase.CursorFactory factory)
static SQLiteDatabase openOrCreateDatabse(String path,SQLiteDatabase.CursorFactory factory)
SQLiteDatabase可以看做是Connection和Statement的混合体,而Cursor可以看做是ResultSet
1.创建数据库和表
SQLiteDatabase.openOrCreateDatabase("/mnt/db/temp.db3",null);
调用execSQL()方法可执行任意的SQL语句
2.使用SQL语句操作
使用SQLiteDatabase进行数据库操作的步骤如下
1.获取SQLiteDatabase对象
2.调用SQLiteDatabase的方法执行SQL语句
3.调用SQL语句的执行结果,比如用SimpleCursorAdapter封装Cursor
4.关闭SQLiteDatabase,回收资源
SQLiteOpenHelper类
实际应用通常继承SQLiteOpenHelper,通过子类的getReadableDatabase().getWritableDatabase()方法打开数据库
提供两个方法onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion)用于数据库的创建和版本更新,子类通常需要覆盖两个方法
3.手势(Gesture)
GestureDetector类
创建GestureDetector时需要传入一个GestureDetector.OnGestureListener实例
GestureDetector.OnGestureListener里面包含的事件处理方法如下
boolean onDown(MotinEvent e) 当触碰事件按下时触发该方法
boolean onFling(MotionEvent e1,MotionEvent e2,float velocity X,float velocity Y) 其中velocity x,velocity y 是代表动作在横向和纵向的速度
abstract void onLongPress(MotionEvent e)当手指在屏幕上长按时触发此方法
boolean onScroll(MotionEvent e1,MotinEvent e2,float distanceX,float distanceY) 当用户手指在屏幕上滚动时触发该方法
void onShowPress(MotionEvent e) 当用户手指按下,未移动和松开时触发该方法
boolean onStringTapUp(MotionEvent e) 用户轻击触发
4.自动朗读
TextToSpeech(Context context,TextToSpeech.OnInitListener listener)