android学习——SharedPreferences类的的使用方法

来源:互联网 发布:淘宝数据作战室 编辑:程序博客网 时间:2024/05/24 16:13
因为SharedPreferences背后是使用xml文件保存数据,getSharedPreferences(name,mode)方法的第一个参数用于指定该文件的名称,名称不用带后缀,后缀会由Android自动加上。方法的第二个参数指定文件的操作模式,共有四种操作模式,这四种模式前面介绍使用文件方式保存数据时已经讲解过。如果希望SharedPreferences背后使用的xml文件能被其他应用读和写,可以指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE权限。

另外Activity还提供了另一个getPreferences(mode)方法操作SharedPreferences,这个方法默认使用当前类不带包名的类名作为文件的名称。


package com.hujl.sharedprefe;import android.app.Activity;import android.content.Context;import android.content.SharedPreferences;import android.content.SharedPreferences.Editor;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class DemoSharedPreferencesActivity extends Activity {private EditText edit_name;private EditText edit_age;    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                edit_name=(EditText)findViewById(R.id.edit_name);        edit_age=(EditText)findViewById(R.id.edit_age);                Button btn_save=(Button)findViewById(R.id.btn_save);        Button btn_recover=(Button)findViewById(R.id.btn_recover);                btn_save.setOnClickListener(new View.OnClickListener() {        @Overridepublic void onClick(View v) {// TODO Auto-generated method stubString name=edit_name.getText().toString();        Integer age=Integer.valueOf(edit_age.getText().toString());                //SharedPreferences sharedPrefe=getSharedPreferences("Parameter",Context.MODE_PRIVATE);                SharedPreferences sharedPrefe=getSharedPreferences("Parameter",Context.MODE_WORLD_READABLE);                Editor editor=sharedPrefe.edit(); //获取编辑器        editor.putString("name", name);        editor.putInt("age", age);        editor.commit();     Toast.makeText(DemoSharedPreferencesActivity.this, R.string.success, Toast.LENGTH_SHORT).show();   }});                btn_recover.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubSharedPreferences sharedPrefe=getSharedPreferences("Parameter", Context.MODE_PRIVATE);String name = sharedPrefe.getString("name", "");int age = sharedPrefe.getInt("age", 20);edit_name.setText(name);edit_age.setText(String.valueOf(age));Toast.makeText(DemoSharedPreferencesActivity.this, R.string.re_success, Toast.LENGTH_SHORT).show();}});            }}

//构造其他应用的Context   Context context=this.getContext().createPackageContext("com.hujl.sharedprefe", Context.CONTEXT_IGNORE_SECURITY);SharedPreferences sharedPrefe=context.getSharedPreferences("Parameter", Context.MODE_PRIVATE);String name = sharedPrefe.getString("name", "");String age= String.valueOf(sharedPrefe.getInt("age", 20));


在其他应用下得到参数 可以用以上的方法.