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 文件:

     

  • 相关阅读:
    windows下一些启动服务的命令
    使用命令行启动服务
    无法向会话状态服务器发出会话状态请求转
    SQLServer跨服务器连接的多种方法
    Response.Buffer = True
    UpdatePanel和Jquery冲突
    <iframe>标签自适应高度和宽度
    java判断获取到的中文字符串是否乱码
    MMC不能打开文件C:\WINDOWS\SYSTEM32\inetsrv\iis.msc,如何解决?
    在.NET中用excel导出(概要)
  • 原文地址:https://www.cnblogs.com/igoogleyou/p/androidsharedpreferences.html
Copyright © 2011-2022 走看看