存储数据之Shared Preference

来源:互联网 发布:Excel数据的平滑处理 编辑:程序博客网 时间:2024/06/07 02:57

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>