Shared Preference是android的一种存储数据的方式,它采用以XML的方式存储。
Content.getSharedPreferences用于得到Shared Preference
这个示例中有2个Activity,一个是ManageSharedPerfs.java,用于把myname和wallpaper name存放到Shared Preference中,Activity中有一个Button,点击后会跳转到第二个Activity——ViewSharedPrefs.java,他用于把wallpaper name从Shared Preference中取出,根据名字得到要设置的背景图片,然后设置墙纸,同时把myname取出来显示在这个Activity中
ManageSharedPerfs.java
public class ManageSharedPerfs extends Activity { private final String MY_NAME = "myname"; private final String MY_WALLPAPER = "wallpaper"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE); SharedPreferences.Editor prefsEditor = myPrefs.edit(); prefsEditor.putString(MY_NAME, "lyj"); prefsEditor.putString(MY_WALLPAPER, "hao.jpg"); prefsEditor.commit(); Button next = (Button) findViewById(R.id.next); next.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(ManageSharedPerfs.this, ViewSharedPrefs.class); startActivity(intent); } }); Toast.makeText(this, R.string.toast, Toast.LENGTH_LONG).show(); } }
ViewSharedPrefs.java
public class ViewSharedPrefs extends ListActivity { private static final String LOG_TAG = ViewSharedPrefs.class.getSimpleName(); private final String MY_NAME = "myname"; private final String MY_WALLPAPER = "wallpaper"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE); String prefName = myPrefs.getString(MY_NAME, "nothing"); String wallPaper = myPrefs.getString(MY_WALLPAPER, null); if (wallPaper != null) { try { Bitmap bm = BitmapFactory.decodeFile("/data/misc/" + wallPaper); Log.d(LOG_TAG, "Wallpaper name is: " + wallPaper); setWallpaper(bm); Toast.makeText(this, "Wall paper has been changed." + "You may go to the home screen to view the wallpaper", Toast.LENGTH_LONG).show(); } catch (FileNotFoundException fe) { Log.e(LOG_TAG, "File not found"); } catch (IOException ie) { Log.e(LOG_TAG, " IO Exception"); } } ArrayList<String> results = new ArrayList<String>(); results.add("Your Preferred name is: " + prefName); this.setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, results)); } }
main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/welcome" /> <Button android:text="@string/button" android:id="@+id/next" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal"> </Button> </LinearLayout>