1.说明:
>SP存储专门用来存储一些单一的小数据
>存储数据的类型:boolean, float, int, long, String
>数据保存的路径: /data/data/packageName/shared_prefs/yyy.xml
>可以数值数据只能是当前应用读取,而别的应用不可以
>应用卸载时会删除此数据
2.相关API
1).SharedPreferences: 对应sp文件的接口
--- context.getSharedPreferences (String name, int mode) : 得到SP对象
> name: 文件名(不带.xml)
> mode: 生成的文件模式(是否是私有的,即其它应用是否可以访问)
--- Editor sp.edit() : 得到Editor 对象
--- Xxx sp.getXxx(name, defaultValue) : 根据name得到对应的数据
2).Editor : 能更新 sp 文件的接口
--- Editor put(name, value) : 保存一个键值对,没有真正保存到文件中
--- Editor remove(name)
--- commit() : 提交,数据真正保存到文件中
3.相关代码
public class SpActivity extends Activity {
private EditText et_sp_key;
private EditText et_sp_value;
private SharedPreferences sp;
private Editor edit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sp);
et_sp_key = (EditText) findViewById(R.id.et_sp_key);
et_sp_value = (EditText) findViewById(R.id.et_sp_value);
// 1.得到sp对象
sp = getSharedPreferences("atguigu", Context.MODE_PRIVATE);
}
public void save(View v) {
// 2.得到editor对象
Editor edit = sp.edit();
// 3.得到输入的key/value
String name = et_sp_key.getText().toString();
String value = et_sp_value.getText().toString();
// 4.使用editor保存key-value
edit.putString(name, value).commit();
// 5.提示
Toast.makeText(this, "保存完成", 0).show();
}
public void read(View v) {
// 1.得到输入的key
String key = et_sp_key.getText().toString();
// 2.根据key读取丢应的value
String value = sp.getString(key, null);
// 3.显示
if (value == null) {
Toast.makeText(this, "没有找到对应的value", 0).show();
} else {
et_sp_value.setText(value);
}
}
}

1458

被折叠的 条评论
为什么被折叠?



