zoukankan      html  css  js  c++  java
  • Android sharedPreferences 用法

        Android 提供了一种数据轻量级的数据持久化方法。使用SharedPreferences 接口 将 key-value 形式的primitive data 存储到文件中。多用于保存软件偏好配置信息。

        注意的几点:

            1.存储内容:primitive data。(booleans, floats, ints, longs, and strings.)

            2. 存储形式:key-value 键值对,存储到xml文件中。

    使用的方法:

        getSharedPreferences(String name, int mode)【或者 getPreferences()】 获得 SharedPreferences 对象。

        读操作:

             通过 SharedPreferences 对象 直接调用 getBoolean getInt 等等方法获取 。

        写操作:

        通过 SharedPreferences 获取 Editor 对象 ,适应Editor对象调用 putBoolean 等方法写文件。

    SharedPreferences 的文件存储地址:/data/data/<packagename>/shared_prefs 目录下

    实例:  用户登录界面的记住密码功能

        

    public class MainActivity extends Activity {
    	EditText user_name, pass_word;
    	CheckBox rememberCheck;
    	Button btnlogin;
    
    	// SharedPreferences setting;
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		user_name = (EditText) findViewById(R.id.etusername);
    		pass_word = (EditText) findViewById(R.id.etpassword);
    		rememberCheck = (CheckBox) findViewById(R.id.checkBox1);
    		btnlogin = (Button) findViewById(R.id.btnlogin);
    
    		// 读取sharedpreference中的值
    		SharedPreferences sharepre = getSharedPreferences("data", MODE_PRIVATE); // 如果 data 文件不存在,创建一个
    		//String isCheckedStr = sharepre.getString("isChecked", "");
    		boolean isChecked = sharepre.getBoolean("isChecked", false);  // 带默认值的
    		if(isChecked){
    			String username = sharepre.getString("username","");			
    			String password = sharepre.getString("password", "");
    			user_name.setText(username);
    			pass_word.setText(password);
    			rememberCheck.setChecked(true);
    		}
    		// 登录事件响应
    		btnlogin.setOnClickListener(new OnClickListener() {
    
    			@Override
    			public void onClick(View arg0) {
    				// TODO Auto-generated method stub
    				SharedPreferences.Editor editor = getSharedPreferences(
    						"data", MODE_PRIVATE).edit();
    				if (rememberCheck.isChecked()) {
    					// 保存值到 sharedPreferences
    					editor.putBoolean("isChecked", true);
    					editor.putString("username", user_name.getText().toString());
    					editor.putString("password", pass_word.getText().toString());
    					
    				}else{
    					
    					editor.clear();
    					
    				}
    				editor.commit();
    				
    				Intent i = new Intent(MainActivity.this,SettingActivity.class);				
    				startActivity(i);
    			}		
    		});
    
    	}
    

     在 DDMS 的file explorer 中可以找到生成的 xml 文件:

     

  • 相关阅读:
    python 包管理工具 pip 的配置
    Python 变量作用域 LEGB (下)—— Enclosing function locals
    Python 变量作用域 LEGB (上)—— Local,Global,Builtin
    2020 Java 面试题 小结 (答案慢慢补上,有错误请指出)
    mysql 根据日期(date)做年,月,日分组统计查询
    jvm指令
    正则表达式 分割地址 获取省市区详细地址
    .Net 异常记录
    WCF设计服务协议(一)
    plsql ORA-01789:查询块具有不正确的结果列数
  • 原文地址:https://www.cnblogs.com/igoogleyou/p/androidsharedpreferences.html
Copyright © 2011-2022 走看看