此存储方式请便适用于记录一些状态:比如登录的帐号密码,应用中的设置等信息。
存储文件为XML格式
Talk is cheap ,show you the code
public class MainActivity extends ActionBarActivity {
String loginId;
TextView showText;
EditText saveText;
SharedPreferences preferences;
Editor editor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.save).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
save();
}
});
findViewById(R.id.load).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
show();
}
});
findViewById(R.id.delete).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
del();
}
});
}
private void save() {
saveText = (EditText) findViewById(R.id.write);
loginId = saveText.getText().toString();
/*
* 存储分为很多模式 MODE_PRIVATE:只能本应用读取,写入的时候为覆盖
* MODE_APPEND:只能本应用读取,写入时为追加,如没有该文件创建新文件 MODE_WORLD_WRITEABLE:其它应用可写入
* MODE_WORLD_READABLE:其它应用可读取 MODE_WORLD_WRITEABLE + MODE_WORLD_READABLE:写
* + 读
*/
preferences = getSharedPreferences("userinfo",
Context.MODE_PRIVATE);
editor = preferences.edit();
editor.putString("loginId", loginId);
editor.commit();
}
private void show() {
preferences = getSharedPreferences("userinfo",
Context.MODE_PRIVATE);
// 如果没有该"loginId"键会返回""
String name = preferences.getString("loginId", "");
showText = (TextView) findViewById(R.id.show);
showText.setText(name);
}
//也可以用file操作删除指定文件
// 文件路径为data/data/"packagename"/shared_prefs/loginId.xml
private void del(){
preferences = getSharedPreferences("userinfo",
Context.MODE_PRIVATE);
editor = preferences.edit();
editor.remove("loginId");
// editor.clear();清除所有
editor.commit();
}
}
<TextView
android:id="@+id/show"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/write"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="text" />
<Button
android:id="@+id/save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/save" />
<Button
android:id="@+id/load"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/load" />
<Button
android:id="@+id/delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/delete" />