Android数据存储有几种方式:
1、SharedPreferences是使用键值对保存数据,适用于基本数据类型:int,float,long,String,boolean类型;
2、SQLite数据库存储,是一款小巧,开源的数据库。
3、网络数据保存。
4、文件
5、contentProvider
SharedPrefernces详细说明:
SharedPrefernces preference= Context.getSharedPreferences("文件名称", "控制权限");
控制权限:
Context.MODE_PRIVATE:表示该文件只能被自身应用调用,
MODE_WORLD_READABLE: 表示该文件可以被其他应用程序读取
MODE_WORLD_WRITEABLE:表示该文件可以被其他应用程序写入
读取文件:
(key, value);//读取String类型
preference.getInt(key, value);//读取Int类型preference.getBoolean(key, value);//读取Boolean类型
preference.getFloat(key, value);//读取Float类型
preference.getLong(key, value);//读取Long类型
preference.getAll(key, value);//读取文件中所有值,返回Map<String ,?>
写入文件:
editor = ();//取得编辑
editor.putString(key, value);//提交数据editor.putLong(key, value);
editor.putInt(key, value);
editor.putFloat(key, value);
editor.putBoolean(key, value);
(key);//删除某个值
();//执行后,文件不存在则创建文件并保存,文件存在则将数据保存到文件中。
事件监听:
//注册事件
(newonSharedPreferenceChangeListener());
();//不要忘记commit,否则不会触发监听器
//解锁注册,不会再响应改变
(newonSharedPreferenceChangeListener());
代码:
package ;
import ;
import ;
import ;
import ;
import ;
import ;
public class MainActivity extends Activity {
private OnSharedPreferenceChangeListener listener = new OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
// TODO Auto-generated method stub
("ChangeListener", "key: " + key + " = " + (key, "value"));
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
(savedInstanceState);
setContentView(.activity_main);
// 如果文件不存在,则会在()时创建并保存数据。如果存在,
// 则会在()时保存数据。
SharedPreferences preference = ("mytest", this.MODE_PRIVATE);
editor = ();
("boolean", true);
("string", "value");
("float", 0.0f);
("int", 10);
("long", 25648523);
(); //不能忘记,否则不会创建文件和保存数据
("ReadSharedRefernces", "string:" + ("string", ""));
("ReadSharedRefernces", "int:" + ("int", 1));
("ReadSharedRefernces", "boolean:" + ("boolean", false));
("ReadSharedRefernces", "flaot:" + ("float", 0.1f));
("ReadSharedRefernces", "long:" + ("long", 23));
(listener); //注册事件
editor = ();
("testListener", "success");
();//不要忘记commit(),否则不会触发监听器。
(listener); //解除注册,不会再相应改变
editor = ();
("name", "SharedPreference");
();//已经解锁注册,所以更改数据时不会触发监听器
}
}