//对应的布局文件就是两个button,一个是点击后将数据存储到sharedpreference,一个是点击后从sharedpreference读取数据
import android.os.Bundle;
import android.app.Activity;
import android.content.SharedPreferences;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.view.View.OnClickListener;
public class MainActivity extends Activity {
private Button saveData;
private Button restoreData;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
saveData = (Button)findViewById(R.id.save_data);
restoreData = (Button)findViewById(R.id.restore_data);
saveData.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
/* getSharedPreferences()方法
此方法接收两个参数,第一个参数用于指定 SharedPreferences 文件的名称,如果指
定的文件不存在则会创建一个,SharedPreferences 文件都是存放在/data/data/<package
name>/shared_prefs/目录下的。第二个参数用于指定操作模式,主要有两种模式可以选
择,MODE_PRIVATE 和 MODE_MULTI_PROCESS。MODE_PRIVATE 仍然是默认的操
作模式,和直接传入 0 效果是相同的,表示只有当前的应用程序才可以对这个
SharedPreferences文件进行读写。 MODE_MULTI_PROCESS 则一般是用于会有多个进程中
对同一个 SharedPreferences 文件进行读写的情况。*/
//调用 SharedPreferences 对象的 edit()方法来获取一个 SharedPreferences.Editor 对象
SharedPreferences.Editor editor = getSharedPreferences("data", MODE_PRIVATE).edit();
/*向 SharedPreferences.Editor 对象中添加数据,比如添加一个布尔型数据就使用
putBoolean 方法,添加一个字符串则使用 putString()方法,以此类推。*/
editor.putString("name", "Derek");
editor.putInt("age", 25);
editor.putBoolean("married", false);
editor.commit();//调用 commit()方法将添加的数据提交
}
});
restoreData.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
SharedPreferences pref = getSharedPreferences("data", MODE_PRIVATE);
String name = pref.getString("name","");
int age = pref.getInt("age",0);
boolean married = pref.getBoolean("married",false);
String test = pref.getString("test","test");
Log.d("MainActivity","name is " + name);
Log.d("MainActivity","age is " + age);
Log.d("MainActivity","marride is " + married);
Log.d("MainActivity","test " + test);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}