SharedPreferences存储,用于存储较复杂的数据,以xml格式保存

来源:互联网 发布:json字符串日期格式化 编辑:程序博客网 时间:2024/04/25 22:58
SharedPreferences保存的数据主要类似于配置信息格式的数据,因此它保存的数据主要是简单的key-value对。   SharedPreferences接口主要负责读取应用程序的Preferences数据,它提供了如下方法来访问SharedPreferences中的key-value对。        1.boolean contains(String key):判断SharedPreferences是否包含特定key的数据。        2.abstract Map<String,?> getAll():获取SharedPreferences数据里全部的key-value对。        3.boolean getXxx(String key,xxx defValue):获取SharedPreferences数据里指定key对应的value。如果该key不存在,返回默认          值defValue。其中xxx可以使 boolean、float、int、longString等各种基本类型的值。 SharedPreferences接口本身并没有提供写入数据的能力,而是通过SharedPreferences的内部接口,SharedPreferences调用edit()方法即可获取它所对应的Editor对象。Editor提供了方法来向SharedPreferences写入数据:         1.SharedPreferences.Editor   clear():清空SharePreferences里所以的数据。         2.SharedPreferences.Editor   putXxx(String key,xxx value):向SharedPreferences存入指定key对应的数据。其中xxx可以是            boolean、float、int、longString等各种基本类型的值。         3.SharedPreferences.Editor   remove(String key):删除SharedPreferences里面指定key对应的数据项。         4.boolean  commit():当Editor编辑完成后,调用该方法提交修改。 SharedPreferences本身是一个接口,程序无法直接创建SharedPreferences实例,只能通过Context的getSharedPreferences(String   name,int mode)方法获取SharedPreferences实例,该方法的第二个参数支持如下几个值:        1.Context.MODE_PRIVATE:指定该SharedPreferences数据只能被本应用程序读、写。        2.Context.MODE_WORLD_READABLE:指定该SharedPreferences数据能被其他程序读,但不能写。        3.Context.MODE_WORLD_WRITADLE:指定该SharedPreferences数据能被其他程序读、写。
public class SharedPerferences extends BaseActivity implements OnClickListener {     private EditText et_nameEditText;     private EditText et_password;     private CheckBox cb_true;     private Button btn_login;     private SharedPreferences sharedPreferences;     private SharedPreferences.Editor editor;     @Override     protected void onCreate(Bundle savedInstanceState) {           super.onCreate(savedInstanceState);          setContentView(R.layout. sharedpreferences);           //输入用户名           et_nameEditText = (EditText) findViewById(R.id.et_name );           //输入密码           et_password = (EditText) findViewById(R.id.et_password );           //是否记住密码选框           cb_true = (CheckBox) findViewById(R.id. cb_true);           //登录按钮           btn_login = (Button) findViewById(R.id.btn_login );           btn_login.setOnClickListener( this);           //得到SharedPreferences对象利用其获取存储的数据           sharedPreferences =         PreferenceManager.getDefaultSharedPreferences(getApplicationContext());          //获取到数据就会给isRemember附上保存的只,否则则会取默认值false           boolean isRemember=sharedPreferences.getBoolean("isremeber" ,false);           if(isRemember){                et_nameEditText.setText( sharedPreferences.getString( "name", ""));                et_password.setText( sharedPreferences.getString( "password", ""));               cb_true.setChecked( true);          }     }     @Override     public void onClick(View v) {           switch (v.getId()) {           case R.id. btn_login:              String name=et_nameEditText.getText().toString().trim();              String password=et_password.getText().toString().trim();               if(name.equals( "admin")&& password.equals("123456" )){                    //利用SharedPreferences对象edit()方法的到SharedPreference.edit对象用来保存数据                    editor = sharedPreferences.edit();                    if( cb_true.isChecked()){                         editor.putBoolean( "isremeber",true );                         editor.putString( "name",name);                         editor.putString( "password",password);                   } else {                         editor.clear();//清空数据                   }                    editor.commit();//提交保存                   Intent intent= new Intent(getApplicationContext(), ViewPager1.class );                   startActivity(intent);                   finish();              } else {                   Toast. makeText(getApplicationContext(),"用户名密码不匹配", Toast.LENGTH_SHORT ).show();              }               break;          }     }}

初来乍到,笔记有什么问题可以提出来,谢谢

1 0