现在的位置: 首页 > 综合 > 正文

存储数据之Shared Preference

2018年05月26日 ⁄ 综合 ⁄ 共 2778字 ⁄ 字号 评论关闭

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>

抱歉!评论已关闭.