安卓开发学习10-1:数据存储:Shared Preferences存储
解析
什么是Shared Perferences
应用场景
- 配置信息
- 主题信息
- 游戏的积分信息等
存储路径
在本应用中的data-data-应用包-自定义名称xml文件下保存写入的数据信息
使用
获取步骤
读取步骤
实例
代码
1、需求:实现自动登录,例如qq的可以设置自动登录,然后下一次就不用再写登录账号密码
2、activity_main.xml:简易实现输入框
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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:background="@drawable/background" android:orientation="vertical" tools:context=".MainActivity"> <EditText android:id="@+id/username" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="QQ号/手机号/邮箱" android:layout_marginTop="300dp"/> <EditText android:id="@+id/password" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="密码" android:layout_marginTop="20dp"/> <ImageButton android:id="@+id/login" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/login" android:layout_gravity="center"/> LinearLayout>
3、MainActivit.java
public class MainActivity extends AppCompatActivity { //定义后台账号和密码 private String name = "fxz", pwd = "123"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取编辑框用户名和密码 EditText username_EditText = findViewById(R.id.username); EditText password_EditText = findViewById(R.id.password); //获取登录按键 ImageButton login = findViewById(R.id.login); //获取Shared Preferences对象 final SharedPreferences sharedPreferences = getSharedPreferences("qqAutoLogin", MODE_PRIVATE); /**********实现自动登录功能************/ //获取账号信息 String username = sharedPreferences.getString("username", null); String password = sharedPreferences.getString("password", null); //判断用户名和密码是否为空 if (username != null && password != null) { //如果用户名和密码相同,实现自动登录 if (username.equals(name) && password.equals(pwd)) { //通过Intent跳转登录 Intent intent = new Intent(MainActivity.this, MessageActivity.class); //启动跳转界面 startActivity(intent); } } else { /**********实现手动登录并储存账号和密码************/ login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //获取输入的账号和密码 String local_username=username_EditText.getText().toString(); String local_password=password_EditText.getText().toString(); //获取Editor对象 SharedPreferences.Editor editor=sharedPreferences.edit(); if(local_username.equals(name) && local_password.equals(pwd)){ //这里保存账号和密码并提交有些多余 editor.putString("username",local_username); editor.putString("password",local_password); //提交信息 editor.commit(); //通过Intent跳转登录 Intent intent = new Intent(MainActivity.this, MessageActivity.class); //启动跳转界面 startActivity(intent); Toast.makeText(MainActivity.this, "已保存账号和密码", Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(MainActivity.this, "账号和密码错误", Toast.LENGTH_SHORT).show(); } } }); } } }
文件查看
使用Android Studio