android数据存取的四种方式
来源:互联网 发布:美工设计岗位理解 编辑:程序博客网 时间:2024/05/01 13:46
Android系统下有四种数据的存在形式,分别是SQLite,SharePreference,File,ContentProvider。
一:特性介绍:
SQLite:对于大多数开发者而言,这应该是大家非常熟悉的数据存储方式了吧。我就不多做介绍了。
在Android中使用SQLite进行数据存取也不复杂:与以前我们做的java不同的是,Android中需要一个处理类SQLiteOpenHelper。
下面我们通过一个简单的事例代码来说明。
1-------------SQLite
这里是一个程序入口测试类:MainActitvity.java
2-------------SharePreference
(我们也通常称之为小文件,它的本质是一个xml文件,常用来存一些简单的参数)用法非常简单:
3-------------File(I/O)这应该是每一个Java程序员非常熟悉的数据存取方式了吧,用IO方式存取数据就不仅仅局限与
一些字符串了,图片,音乐,文档等等文件都可以通过IO方式来。这里我就举一个在Android开发中常用的IO操作:
呵呵,请各位参考我的另一篇博客:---------Android从网络加载图片
4.------------ContentProvider
大家都知道:上面三种数据都是一个程序私有的,它们存在于程序的安装文件中,因此它们不能够被其他的应用程序共享。
所以这时就有ContentProvider来实现共享数据的功能了,ContentProvider的标准解释是:“不同程序间进行数据交换的标准API”,
比如:我们新建一个工程去获取系统联系人列表,或者去获取Camera下的照片,录像等,就需要使用这些程序提供的ContentProvider接口来实现“桥梁”的功能。参考博客--------ContentProvider应用实例
一:特性介绍:
SQLite:对于大多数开发者而言,这应该是大家非常熟悉的数据存储方式了吧。我就不多做介绍了。
在Android中使用SQLite进行数据存取也不复杂:与以前我们做的java不同的是,Android中需要一个处理类SQLiteOpenHelper。
下面我们通过一个简单的事例代码来说明。
1-------------SQLite
新建一个类MySqlHanlder.java继承至SQLiteOpenHelper,实现所有的方法并生成构造函数。
public class MyDataHelper extends SQLiteOpenHelper {public MyDataHelper(Context context, String name, CursorFactory factory,int version) {super(context, name, factory, version);// TODO Auto-generated constructor stub}@Overridepublic void onCreate(SQLiteDatabase db) {// TODO Auto-generated method stub}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// TODO Auto-generated method stub}}
这里是一个程序入口测试类:MainActitvity.java
public class MainActitvity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); MyDataHelper data = new MyDataHelper(MainActitvity.this,"zhao",null, 1);//创建一个名叫zhao的数据库 final SQLiteDatabase db = data.getWritableDatabase(); String createtable = "create table if not exists student(mane varchar(30),age integer)"; db.execSQL(createtable);//在zhao中创建一个叫做student的表 final String insert = "insert into student values(?,?)"; final String query = "select mane from student";//写入数据 Button writebtn = (Button)findViewById(R.id.writedata); writebtn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 在zhao中插入三条数据db.execSQL(insert, new Object[]{"xiaoming",10});db.execSQL(insert, new Object[]{"xiaozhang",10});db.execSQL(insert, new Object[]{"kankan",10});}});//读取数据 Button readbtn = (Button)findViewById(R.id.readdata); readbtn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubCursor cursor = db.rawQuery(query, null);while (cursor.moveToNext()) {Toast.makeText(MainActitvity.this,cursor.getString(0),3000).show();//得到第一条数据}}}); }}main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><Buttonandroid:id="@+id/writedata"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="Write"></Button><Buttonandroid:id="@+id/readdata"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="Read"></Button></LinearLayout>
2-------------SharePreference
(我们也通常称之为小文件,它的本质是一个xml文件,常用来存一些简单的参数)用法非常简单:
public class MainActitvity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);//创建zhao.xml文件SharedPreference sp = this.getSharedPreferences("zhao",MODE_APPEND);//获取编辑对象SharedPreferences.Editor edit = sp.edit();//添加值edit.putString("user1","xiaoli");edit.putInt("age",20);//提交edit.commit(); }}
3-------------File(I/O)这应该是每一个Java程序员非常熟悉的数据存取方式了吧,用IO方式存取数据就不仅仅局限与
一些字符串了,图片,音乐,文档等等文件都可以通过IO方式来。这里我就举一个在Android开发中常用的IO操作:
呵呵,请各位参考我的另一篇博客:---------Android从网络加载图片
4.------------ContentProvider
大家都知道:上面三种数据都是一个程序私有的,它们存在于程序的安装文件中,因此它们不能够被其他的应用程序共享。
所以这时就有ContentProvider来实现共享数据的功能了,ContentProvider的标准解释是:“不同程序间进行数据交换的标准API”,
比如:我们新建一个工程去获取系统联系人列表,或者去获取Camera下的照片,录像等,就需要使用这些程序提供的ContentProvider接口来实现“桥梁”的功能。参考博客--------ContentProvider应用实例
也希望各位学习批评指正。
- android数据存取的四种方式
- android数据存取的四种方式
- Android存取数据的几种方式
- Android 提供的存取数据的方式
- Android中的数据存取三种方式
- 【Android】数据的四种存储方式
- Android数据的四种存储方式
- Android数据的四种存储方式
- Android数据的四种存储方式
- Android数据的四种存储方式
- Android数据的四种存储方式
- Android数据的四种存储方式
- Android数据的四种存储方式
- Android数据的四种存储方式
- Android数据的四种存储方式
- Android数据的四种存储方式
- Android数据的四种存储方式
- Android数据的四种存储方式
- Java8 Lambda表达式教程
- D. Renting Bikes(CodeFroce)
- 【转】使用 C++ 处理 JSON 数据交换格式
- 重新安装MySql,提示服务启动失败
- 搜索引擎架构图
- android数据存取的四种方式
- codeforces 362B
- 我的C++命名规则
- (Relax 1.15)POJ 2773 Happy 2006(欧拉函数的应用:求与n互质的第k个数)
- google map API 在Eclipse上的配置
- 初识Ajax
- 链表的简单操作
- Cheats with ELF: Code Injecting into ELF Headers
- xhost命令