SharedPreferences解析和实现记住用户名

SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,它提供了Android平台常规的Long长整形、Int整形、String字符串型的保存。

10年的武清网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。网络营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整武清建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“武清网站设计”,“武清网站推广”以来,每个客户项目都认真落实执行。

SharedPreferences不支持多线程。例如,可以通过它保存上一次用户所做的修改或者自定义参数设定,当再次启动程序后依然保持原有的设置。

另外的数据存储方式还有SQLite、Content Provider、File...

用法:

SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现的。

存放:

1.获得SharedPreferences 的实例对象,通过getSharedPreferences()传递存储时的名称和模式

2.获得Editor 的实例对象,通过SharedPreferences 的实例对象的edit()

3.存入数据用Editor的putXXX()  [存放什么数据就put那个数据的类型,支持Long、Int、String、Boolean]

4.提交修改的数据用Editor的commit()

读取:

1.获得SharedPreferences 的实例对象,通过getSharedPreferences()传递存储时的名称和模式

2.读取数据,通过SharedPreferences 的实例对象的getXXX()       [读取什么类型的数据就get那个类型]

getSharedPreferences方法扩展

getSharedPreferences("存储时的名称","模式")

模式(可组合使用):     

私有:       Context.MODE_PRIVATE                  值0

公开可读:Context.MODE_WORLD_READABLE    值1

公开可写:Context.MODE_WORLD_WRITEABLE  值2

 
 
 
  1. SharedPreferences sp = getSharedPreferences("mydata", Context.MODE_WORLD_WRITEABLE|Context.MODE_WORLD_WRITEABLE); 

1、数据共享

2个activity 之间可以使用SharedPreferences来共享数据的方式

A类

 
 
 
  1. Editor sharedata = getSharedPreferences("data", 0).edit(); 
  2.  sharedata.putString("item","hello getSharedPreferences"); 
  3.  sharedata.commit(); 

B类

 
 
 
  1. SharedPreferences sharedata = getSharedPreferences("data", 0); 
  2.  String data = sharedata.getString("item", null); 
  3.  Log.v("cola","data="+data); 

2、保存修改

这里用记住用户名为例子解说

main.xml 布局文件

 
 
 
  1.  
  2.     android:layout_width="fill_parent" 
  3.     android:layout_height="fill_parent" 
  4.     android:orientation="vertical" > 
  5.     
  6.         android:layout_width="fill_parent" 
  7.         android:layout_height="wrap_content" 
  8.         android:orientation="horizontal"> 
  9.         
  10.             android:layout_width="wrap_content" 
  11.             android:layout_height="wrap_content" 
  12.             android:text="用户名:" /> 
  13.         
  14.             android:id="@+id/login_user_et" 
  15.             android:layout_width="150dip" 
  16.             android:layout_height="wrap_content" 
  17.             android:digits="abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"/> 
  18.      
  19.     
  20.         android:layout_width="fill_parent" 
  21.         android:layout_height="wrap_content" 
  22.         android:orientation="horizontal"> 
  23.         
  24.             android:layout_width="wrap_content" 
  25.             android:layout_height="wrap_content" 
  26.             android:text="密     码:" /> 
  27.         
  28.             android:id="@+id/login_pswd_et" 
  29.             android:layout_width="150dip" 
  30.             android:layout_height="wrap_content" 
  31.             android:password="true"/> 
  32.      
  33.     
  34.         android:layout_width="fill_parent" 
  35.         android:layout_height="wrap_content" 
  36.         android:orientation="horizontal"> 
  37.         
  38.             android:layout_width="wrap_content" 
  39.             android:layout_height="wrap_content" 
  40.             android:text="记住密码:" /> 
  41.         
  42.             android:id="@+id/login_checkbox" 
  43.             android:layout_width="wrap_content" 
  44.             android:layout_height="wrap_content"/> 
  45.      
  46.     
  47.         android:id="@+id/login_btn" 
  48.         android:layout_width="200dip" 
  49.         android:layout_height="wrap_content" 
  50.         android:text="登陆"/> 
  51.  

 
 
 
  1. public class DemoActivity extends Activity { 
  2.      
  3.     public static final String PREFS_NAME = "prefsname"; //偏好设置名称 
  4.     public static final String REMEMBER_USERID_KEY = "remember"; //记住用户名 
  5.     public static final String USERID_KEY = "userid"; //用户名标记 
  6.     private static final String DEFAULT_USERNAME = "Hades"; //默认用户名 
  7.      
  8.     //组件 
  9.     private EditText userName = null; 
  10.     private EditText passWord = null; 
  11.     private CheckBox cb = null; 
  12.     private SharedPreferences mSettings = null; 
  13.     private Button submitBtn = null; 
  14.      
  15.     @Override 
  16.     public void onCreate(Bundle savedInstanceState) { 
  17.         super.onCreate(savedInstanceState); 
  18.         setContentView(R.layout.main); 
  19.         userName = (EditText) findViewById(R.id.login_user_et); 
  20.         passWord = (EditText) findViewById(R.id.login_pswd_et); 
  21.         cb = (CheckBox) findViewById(R.id.login_checkbox); 
  22.         submitBtn = (Button) findViewById(R.id.login_btn); 
  23.         mSettings = getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); //模式为私有 
  24.         cb.setChecked(getRemember()); //勾选记住用户名 
  25.         userName.setText(getUserName()); //设置用户名 
  26.          
  27.         //保存用户名 
  28.         submitBtn.setOnClickListener(new OnClickListener() { 
  29.             @Override 
  30.             public void onClick(View v) { 
  31.                 //是否保存用户名 
  32.                 if (cb.isChecked()) { 
  33.                     saveRemember(true); 
  34.                     saveUserName(userName.getText().toString()); 
  35.                 } else { 
  36.                     saveRemember(false); 
  37.                     saveUserName(""); 
  38.                 } 
  39.             } 
  40.         }); 
  41.     } 
  42.  
  43.     // 保存用户名 
  44.     private void saveUserName(String userid) { 
  45.         Editor editor = mSettings.edit();// 获取编辑器 
  46.         editor.putString(USERID_KEY, userid); 
  47.         editor.commit(); //保存数据 
  48.         //editor.clear();//清除数据 
  49.     } 
  50.  
  51.     // 设置是否保存的用户名 
  52.     private void saveRemember(boolean remember) { 
  53.         Editor editor = mSettings.edit();// 获取编辑器 
  54.         editor.putBoolean(REMEMBER_USERID_KEY, remember); 
  55.         editor.commit(); 
  56.     } 
  57.     // 获取保存的用户名 
  58.     private String getUserName() { 
  59.         return mSettings.getString(USERID_KEY, DEFAULT_USERNAME); 
  60.     } 
  61.  
  62.     // 获取是否保存的用户名 
  63.     private boolean getRemember() { 
  64.         return mSettings.getBoolean(REMEMBER_USERID_KEY, true); 
  65.     } 

页面:

 

文章题目:SharedPreferences解析和实现记住用户名
转载源于:http://www.gawzjz.com/qtweb2/news12/12562.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联