SharedPreferences,可以储存程序少量的数据,默认写在私有目录下,不和外部程序共享。
1.xml布局,添加两个EditText和两个Button,模拟写入和读取。
2.java部分
public class MainActivity extends Activity implements OnClickListener{
private static final String FILENAME = "myfile";//文件名
EditText edit1, edit2;
SharedPreferences sp;//sp对象
int i;
private Button button1;
private Button button2;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.face);
edit1 = (EditText) findViewById(R.id.editText1);
edit2 = (EditText) findViewById(R.id.editText2);
button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
sp = this.getSharedPreferences(FILENAME, Context.MODE_WORLD_READABLE
+ Context.MODE_WORLD_WRITEABLE);//获取活动的sp对象
}
private void writeData(String string) {
SharedPreferences.Editor editor = sp.edit();//获取编辑对象
editor.putString("key" + i, string + i);//键值对写入方式
editor.commit();//提交
i++;
}
private CharSequence readData() {
String s = sp.getString("key1", "no data");//读取
Map<String, String> maps = (Map<String, String>) sp.getAll();
Log.e("key" + i, maps.get("key" + i));
i++;
return s;
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
edit1.setText(readData());
break;
case R.id.button2:
writeData(edit2.getText().toString());
break;
default:
break;
}
}
}
其实就简单的三步:获取sp流对象,获取编辑对象,写入读出。