安卓开发学习10-1:数据存储:Shared Preferences存储
2024-09-08 18:17:22
解析
什么是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
最新文章
- 2015 - 准备读书List
- StringBuilder 和 StringBuffer
- jQuery 取值、赋值的基本方法
- cookie的使用
- 孙鑫视频学习:改变窗口过程函数中出现error C2440错误的解决方法
- Linux服务器的初步配置流程
- Codeforces Round #256 (Div. 2/A)/Codeforces448A_Rewards(水题)解题报告
- Hadoop的基本命令【转载】
- Mac设置
- delphi的ArrayList
- 自己动手系列——实现一个简单的ArrayList
- [LeetCode]Rotate Image(矩阵旋转)
- 使用nginx处理静态资源请求,其余交给node
- sql中with as测试实例
- 为网站添加emoji表情的支持
- 函数使用十二:BAPI_MATERIAL_BOM_GROUP_CREATE(CS61)
- LVS原理详解(3种工作模式及8种调度算法)
- spoj TBATTLE 质因数分解+二分
- 20165203《Java程序设计》第三周学习总结
- CS231n课程笔记翻译8:神经网络笔记 part3