




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【sharePreferences】共享参数:概念:SharedPreferences是Android系统提供的一个通用的数据持久化框架,用于存储和读取key-value类型的原始基本数据类型对,目前支持String、int、long、float、boolean等基本类型的存储,对于自定义的对象数据类型,无法使用SharedPreferences来存储。他通常以xml文件方式存储在data文件夹中,文件存储路径: /data/data/appPackageName/shared_prefs/filename SharedPreferences主要用于存储系统的配置信息。例如上次登录的用户名,上次最后设置的配置信息(如:是否打开音效、是否使用振动,小游戏的玩家积分等)。当再次启动程序后依然保持原有设置。SharedPreferences用键值对方式存储,方便写入和读取。注:SharePreferenced本身的对象不能对数据进行存储和修改,只能获取到数据,是通过Editor的实例化对象对数据进行存储和修改。常用方法1.Context.getSharedPreferences(String, int mode)mode的属性值有:Context.MODE_PRIVATE: 指定该SharedPreferences的数据只能被本应用程序读、写Context.MODE_APPEND:新内容追加到原内容后Context.MODE_WORLD_READABLE: 指定 SharedPreferences数据能被其他应用程序读,但是不支持写Context.MODE_WORLD_WRITEABLE: 指定 SharedPreferences数据能被其他应用程序读、写会覆盖原数据;可以使用+连接这些权限2.contains(String key)3.Map getAll()4.getString(String key, String defValue)5.SharedPreferences.Editor edit()putString(String key, String value)putStringSet(String key, Set values)putBoolean(String key, boolean value)clear()commit() 编辑完数据之后必须提交SharePreferenced存储数据的方法1.创建一个SharePreferenced的对象:SharedPreferences pref = getSharedPreferences(name_pref, MODE_PRIVATE);2.创建一个Editor的对象 : editor = pref.edit();3.然后调用Editor对象的putXxx方法,把指定的key值和他相对应的数据存储到SharePreferenced当中。4.调用Editor的commit()方法,把存储的数据内容或者修改的内容提交。:mit();登录的实例:(重重点)protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);userEt = (EditText)findViewById(R.id.userEt);passEt = (EditText)findViewById(R.id.passEt);chkSave = (CheckBox)findViewById(R.id.chkSaveUser);pref = getSharedPreferences(name_pref, MODE_PRIVATE);editor = pref.edit();String name = pref.getString(name, null);/获取数据if (name = null) chkSave.setChecked(false);elseuserEt.setText(name);chkSave.setChecked(true);public void loginClick(View v)String name = userEt.getText().toString();String pass = passEt.getText().toString();if (admin.equals(name)&123456.equals(pass) if (chkSave.isChecked() editor.putString(name, name);mit();elseeditor.remove(name);mit();Toast.makeText(MainActivity.this, 登录成功, 0).show();elseToast.makeText(MainActivity.this, 登录失败, 0).show();【file存储】内部存储好处:当手机应用被卸载删除的时候,不会有过多的存于垃圾,都会被一起清理掉。常用方法:1.FileOutputStream Context.openFileOutput (String filename, int mode)Context.MODE_APPENDContext.MODE_PRIVATEContext.MODE_WORLD_READABLEContext.MODE_WORLD_WRITEABLE2.FileInputStream Context.openFileInput (String filename)3.String Context.fileList()4.Context.deleteFile(String filename)文件存储的步骤:1.通过调用openFileOutPut()的方法实例化一个文件的输出流。2.通过调用fileOutputStream的write方法,把byte型数据存储到文件中。3.关闭流扩展存储(SD卡存储)获取sdcard状态: int Environment.getExternalStorageState()Environment.MEDIA_MOUNTED 介质已加载完Environment.MEDIA_MOUNTED_READ_ONLY 介质已加载完,但是只读状态Environment.MEDIA_CHECKING 正在检测介质Environment.MEDIA_UNKNOWN 介质未知Environment.MEDIA_UNMOUNTED 介质已卸载获取公共目录: File Environment.getExternalStoragePublicDirectory(String type)Environment.DIRECTORY_MOVIESEnvironment.DIRECTORY_MUSICEnvironment.DIRECTORY_DOCUMENTSEnvironment.DIRECTORY_DOWNLOADSEnvironment.DIRECTORY_PICTURESEnvironment.DIRECTORY_RINGTONES获取根目录:File Environment.getExternalStorageDirectory()获取下载缓存目录:File Environment.getDownloadCacheDirectory()读写SD卡的步骤 1.判断手机内是否挂载了sd卡,判断是否获得了sd卡的读写使用权限Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)/判断sdcard是否挂载,同时获得了权限File sdcardFile = Environment.getExternalStorageDirectory();2.在清单文件中加入2个权限 3.通过Environment.getExternalStorageDirectory()获取手机外置存储卡的地址。4.然后就可以用FileInputStream,FileOutputStream等等来读写sd卡的文件了【Sqlite数据存储】SQLite简介:是安卓系统集成的轻量级的数据库,使用c语言编写的嵌入式数据库引擎。无数据库管理引擎,独立DB文件存在的sqlite3工具1. sqlite3是Android SDK自带的命令式数据库管理工具, 其所在路径: android_sdk/tools/2. sqlite expert 是可视化的数据库管理工具,最新版本是3.5.38 官方下载路径:/download.html 商业版:sqlite expert professional 有30天试用期 个人版:sqlite expert personal 免费使用3. 破解版下载路径:SQLite Expert Professional(SQLite管理工具) v440免费版/softview/softview_105940.htmlsqlite3 db_name :启动数据库工具sqlite.helpsqlite.databasessqlite .tablessqlite .schema table_namesqlite标准sql语句sqlite .read c:/aa.sql 导入sql语句sqlite .exit底层特点:1 虽然SQLite的引擎非常小,但她支持存储2TB大小的数据库文件2 以单个文件的形式存在3 是以BTree的数据结构存在于磁盘中。特点:1. 轻量级,一个数据库中可以有多个文件2. 独立性,没有依赖,无需安装3. 隔离性,全部存在于一个文件夹当中。4. 跨平台,支持多种操作系统5. 多语言接口,支持众多编程语言6. 安全性, 事物Sqlite支持的数据类型:1 空值(null),浮点型(REAL),整数型(INTEGER),二进制(BLOB),字符串型(TEXT)数据库操作类1.SQLiteDatabase1.SQLiteDatabase openOrCreateDatabase(String path,CursorFactory)2.SQLiteDatabase openDatabase (String path, CursorFactory, int flags)a.SQLiteDatabase.OPEN_READWRITE 以读写方式打开b.SQLiteDatabase.OPEN_READONLY 以只读方式打开c.SQLiteDatabase.CREATE_IF_NECESSARY 如果数据库不存在,则创建3.insert (String table, String nullColumnHack, ContentValues values)4.update (String table, ContentValues values, String whereClause, String whereArgs)5.delete (String table, String whereClause, String whereArgs)6.Cursor query (String table, String columns, String selection, String selectionArgs, String groupBy, String having, String orderBy, String limit)7.Cursor rawQuery (String sql, String selectionArgs)8.execSQL (String sql, Object bindArgs)9.beginTransaction()2.SQLiteOpenHelper: 抽象类的父类,用于管理数据库的创建和版本的更新必须实现的方法1.SQLiteOpenHelper(Context,String dbName,CursorFactory,int version)2.onCreate(SQLiteDatabase db) 第一次创建数据库的初始化方法3.onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 数据库更新常用的方法1.SQLiteDatabase getReadableDatabase() 以只读方法打开数据连接2.SQLiteDatabase getWritableDatabase() 以读写方式打开数据库3.Cursor列相关操作1.getColumnCount() 获取总列数2.getColumnName(int columnIndex) 获取指定位置的列名3.getColumnIndex(String columnName) 获取列的索引位置4.isNull(int columnIndex) 指定位置的列是否为null 5.getType(int columnIndex) 获取指定位置列的数据类型a.Cursor.FIELD_TYPE_NULL null类型b.Cursor.FIELD_TYPE_INTEGER int 类型c.Cursor.FIELD_TYPE_FLOAT: float类型d.Cursor.FIELD_TYPE_STRING:String类型 e.Cursor.FIELD_TYPE_BLOB:blob类型,即对象或二进制数据类型记录相关操作1.getCount() 获取总记录数2.getString(int columnIndex) 获取指定列的String类型数据3.getInt(int columnIndex) 获取指定列的long类型数据4.getLong(int columnIndex) 获取指定列的long类型数据5.getFloat(int columnIndex) 6.getDouble(int columnIndex)位置移动1.boolean moveToNext() 下一行移动2.boolean moveToPrevious() 移到初始位置,第一条记录的上方3.boolean moveToPosition(int position) 移动到指定位置4.boolean moveToLast()移动到最后一条位置5.boolean moveToFirst() 移到第一条位置6.move(int offset) 从当前位置向上或下移动n行,负值是向上移动,反之向下SimpleCursorAdapter:其父类-CursorAdapter1.SimpleCursorAdapter(Context context, int layout, Cursor c, String from, int to)2.SimpleCursorAdapter(Context context, int layout, Cursor c, String from, int to, int flags)a.CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER b.CursorAdapter.FLAG_AUTO_REQUERY 【数据库操作:】数据库的创建:1.SQLiteDatabase db = openOrCreateDatabase(user.db, MODE_PRIVATE, null);2.使用数据库创建的抽象类SQLiteOpenHelper步骤:1.新建一个类,继承SQLiteOpenHelper类。2.写新建的子类构造函数,和onCreate()方法和onUpdate()方法3.在onCreate()方法中创建表。如:db.execSQL(create table if not exists usertb(_id integer primary key autoincrement, +name text not null,sex text not null,age integer not null);4.在activity当中实例化新建的SQLiteOpenHelper的子类:SQLiteOpenHelper helper=new SQLiteOpenHelper(this,”stu.db”)5.通过getWritableDatabase()方法或者getReadableDatabase()方法,获得数据库的实例化对象。SQLiteDatabase db = helper.getWritableDatabase();增:增加表中的内容:1. 用SqliteDatabase 的insert (String table, String nullColumnHack, ContentValues values)2. 使用【ContentValues】putXxx(String key,Xxx values):方法把需要插入的内容放到此对象中,然后传递到SQLiteDatab
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年风湿免疫科风湿性疾病诊治试题答案及解析
- 2025年教师资格高频难、易错点题及参考答案详解(能力提升)
- 2025年广西农业农村厅直属事业单位招聘128人笔试备考题库含答案详解
- 农发行牡丹江市林口县2025秋招结构化面试15问及话术
- 2025年人教版8年级数学下册《平行四边形》专题攻克练习题(详解)
- 2025年反射疗法师大赛理论试题及答案详解(各地真题)
- 监理师考试题目及答案
- 驾校译音考试题及答案
- 农发行娄底市涟源市2025秋招小语种岗笔试题及答案
- 农发行吕梁市孝义市2025秋招笔试价值观测评题专练及答案
- 养老护理员四级考试题库及答案
- 建筑工程质量控制体系
- 中国电子科技集团公司第三十六研究所新能源、电子项目(二期)环评报告
- 工艺验证检查指南2025
- 临床教学中的情感教育PBL教学法的探索与实践
- 建筑工程碳排放计量指南
- 安全生产大检查方案
- 《劳动教育》 课件 专题一端正劳动态度 第四节 劳动最美丽
- 备考2025年成人高考-专升本-政治考点及必背知识点大全
- 小儿疝气科普知识
- 变电站电气设备巡视-变压器巡视(变电站电气运行)
评论
0/150
提交评论