Android SharedPreferences实现保存登录数据功能

发布时间:2019-08-08 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Android SharedPreferences实现保存登录数据功能脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例为大家分享了AndROId SharedPReferences保存登录数据的具体代码,供大家参考,具体内容如下

目标效果: 

Android SharedPreferences实现保存登录数据功能

程序运行显示一个登陆框,用户名输入admin,密码输入123456会提示登录成功,如果不是则提示不正确,如果勾选保存用户名,在下一个程序打开时,用户名会自动读取并显示。

1.activITy_main.XMl页面存放所有的控件,我在每一行都使用了线性布局。

activity_main.xML页面:

 <RelativeLayout xmlns:android="http://schemas.android.COM/apk/res/android"  xmlns:tools="http://schemas.android.com/tools"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:layout_marginLeft="20dp"  android:layout_marginRight="20dp"  tools:context=".SecondActivity" >    <LinearLayout   android:layout_width="match_parent"   android:layout_height="wrap_content"   android:layout_marginTop="20dp"   android:orientation="horizontal" >     <TextView    android:id="@+id/tvName"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="用户名:" />     <EditText    android:id="@+id/etInputName"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_weight="2" />  </LinearLayout>    <LinearLayout   android:layout_width="match_parent"   android:layout_height="wrap_content"   android:layout_marginTop="60dp"   android:orientation="horizontal" >     <TextView    android:id="@+id/tvPass"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="密 码:" />     <EditText    android:id="@+id/etInputPass"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_weight="2" />  </LinearLayout>    <LinearLayout   android:layout_width="match_parent"   android:layout_height="wrap_content"   android:layout_marginTop="100dp"   android:orientation="horizontal" >     <CheckBox    android:id="@+id/cbSave"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:checked="false"    android:text="保存用户名" />  </LinearLayout>    <LinearLayout   android:layout_width="match_parent"   android:layout_height="wrap_content"   android:layout_marginTop="130dp"   android:orientation="horizontal" >     <Button    android:id="@+id/BTLOGin"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_weight="1"    android:text="登录" />     <Button    android:id="@+id/btCancel"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_weight="1"    android:text="取消" />  </LinearLayout>   </RelativeLayout>

2.MainActivity.java页面处理登录和保存数据。

MainActivity.java页面:

 package com.example.sharedpreferences;   import android.os.Bundle; import android.app.Activity; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.Toast;   public class MainActivity extends Activity implements OnClickListener{    SharedPreferences pref;  Editor editor;  private EditText etInputName,etInputPass;  private CheckBox ckSave;  private Button btLogin,btCancel;  @override  protected void onCreate(Bundle savedInstancestate) {  suPEr.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);  /**  * 获取控件id  */  getId();  /**  * 保存数据  */  saveData();  /**  * 绑定点击事件  */  bindClick();  }        /**  * 获取控件id  */  private void getId() {  etInputName=(EditText) findViewById(R.id.etInputName);  etInputPass=(EditText) findViewById(R.id.etInputPass);  ckSave=(CheckBox) findViewById(R.id.cbSave);  btLogin=(Button) findViewById(R.id.btLogin);  btCancel=(Button) findViewById(R.id.btCancel);  }  /**  * 保存数据  */  private void saveData() {    //获得SharedPreferences对象  pref=getSharedPreferences("userInfo",MODE_PRIVATE);//将内容存放到名为userInfo的文档内    //获得SharedPreferences.Editor对象  editor=pref.edit();    String name=pref.getString("userName","");//获取用户名  if(name.equals("")){//如果name为空,代表未选择保存用户名  ckSave.setChecked(false);//不勾选  }else{  ckSave.setChecked(true);  etInputName.setText(name);//将读取到的name值赋值到EditText中  }  }    /**  * 绑定点击事件  */  private void bindClick() {  btLogin.setOnClickListener(this);  btCancel.setOnClickListener(this);  }    /**  * 按钮点击事件  */  @Override  public void onClick(View view) {  switch (view.getId()) {  case R.id.btLogin:  String name=etInputName.getText().toString().trim();//获取输入的名字并去掉空格  String pass=etInputPass.getText().toString().trim();//获取输入的密码并去掉空格  if("admin".equals(name)&&"123456".equals(pass)){  if(ckSave.isChecked()){//如果选择保存用户名   editor.putString("userName",name);   editor.commit();//提交数据  }else{//如果未选择保存用户名   editor.remove("userName");//删除用户名   editor.commit();//提交数据(每次更改都需要提交)  }  Toast.makeText(SecondActivity.this,"登录成功",Toast.LENGTH_SHORT).show();  }else{  Toast.makeText(SecondActivity.this,"用户名或密码不正确",Toast.LENGTH_SHORT).show();  }  break;  case R.id.btCancel:  break;  }  } }

3.保存的文件目录可以查看的到,点击右上角进入,找到data->data->当前目录的包名->shared-prefs->新建的文件名

Android SharedPreferences实现保存登录数据功能

4.另外,点击右上角导出可以暂时保存到桌面,然后选择打开方式可以查看里边信息。

5.还有一点是,当程序在真机上运行时,file explore打不开data文件夹,根据网上的经验,真机先root,然后在手机上装上R.E 管理器(或类似软件),将/data/data的权限修改为可读可写可执行,然后,就可以在eclipse中展开了。

Android SharedPreferences实现保存登录数据功能

6.SharedPreferences多用于配置信息或者内容较少的数据的保存,当数据量复杂或者较大,还是需要使用数据库

android教程
脚本网站
android studio

脚本宝典总结

以上是脚本宝典为你收集整理的Android SharedPreferences实现保存登录数据功能全部内容,希望文章能够帮你解决Android SharedPreferences实现保存登录数据功能所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。