通常的步骤:
1. 调用getSharedPreferences()获取SharedPreferences对象;
2. 读取数据:调用SharedPreferences()的getX()方法;
3. 写数据:调用SharedPreferences()的edit()方法,进而putX(),最后commit()。
代码示例:
public class MainActivity extends ActionBarActivity {
private final String TAG = "MainActivity";
private final String SHARED_PREFERENCES_NAME = "the_shared_preferences_name";
private final String PET_NAME = "pet_name";
private final String PET_COUNT = "pet_count";
TextView imsi = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_main/*activity_main*/);
/*if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment())
.commit();
}*/
SharedPreferences sharedPreferences = getSharedPreferences(SHARED_PREFERENCES_NAME, MODE_PRIVATE);
Log.d(TAG, "pet name: " + sharedPreferences.getString(PET_NAME, "puppy"));
Log.d(TAG, "pet count: " + sharedPreferences.getInt(PET_COUNT, 0));
sharedPreferences.edit().putString(PET_NAME, "kitten").putInt(PET_COUNT, 2).commit();
Log.d(TAG, "pet name: " + sharedPreferences.getString(PET_NAME, "puppy"));
Log.d(TAG, "pet count: " + sharedPreferences.getInt(PET_COUNT, 0));
}
运行结果:第一次运行的时候,因为还没有存储数据,所以取到的是缺省值;之后运行,就是代码设置的数据。
flying-bird@flying-bird:~/software/android/adt-bundle-linux-x86-20140321/sdk/platform-tools$ ./adb logcat MainActivity:d *:S
--------- beginning of /dev/log/system
--------- beginning of /dev/log/main
D/MainActivity ( 1117): pet name: puppy
D/MainActivity ( 1117): pet count: 0
D/MainActivity ( 1117): pet name: kitten
D/MainActivity ( 1117): pet count: 2
D/MainActivity ( 1117): pet name: kitten
D/MainActivity ( 1117): pet count: 2