系列文章
提示:转到安卓学习专栏,观看更多内容! 点我直达–>安卓学习专栏
前言
????建议先看前面的文章——安卓学习专栏——SharedPreferences文件存储(图文+代码) ????在郭老师的教材中修改了监听方式,采用了最基础的一般监听。 ????把保存数据和读取数据结合在一起,学习更有延续性。 ????采用了吐司显示的方式,比log显示更加直观。
1.实现效果
1.1界面
1.2日志log中显示信息
1.3吐司显示信息
2.xml外观文件
有2个按钮,分别用于保存和读取数据
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/save_data"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="保存数据"
/>
<Button
android:id="@+id/restore_data"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="读取数据"
/>
</LinearLayout>
3.java功能文件
使用SharedPreferences的get方法获得数据。
- 定义一个SharedPreferences 对象,getSharedPreferences(),通过数据文件名userData获取
SharedPreferences pref = getSharedPreferences("userData", MODE_PRIVATE);
- 调用它的getString() 、getInt() 和getBoolean() 方法获取前面所存储的姓名、年龄和性别没有找到相应的值,就会使用方法中传入的默认值来代替
String name = pref.getString("userName", "");
int age = pref.getInt("age", 0);
boolean isManed = pref.getBoolean("isMan", false);
- 通过Log将这些值打印或是通过吐司显示
Log.d("MainActivity", "name is " + name);
Log.d("MainActivity", "age is " + age);
Log.d("MainActivity", "isMan is " + isManed);
Toast.makeText(this,
"name is " + name + "\n" + "age is " + age + "\n" + "isMan is " + isManed
, Toast.LENGTH_SHORT)
.show();
完整代码:
package com.example.sharedpreferencestest;
import androidx.appcompat.app.AppCompatActivity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button save_data = null;
private Button restore_data = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button save_data = (Button) findViewById(R.id.save_data);
save_data.setOnClickListener(this);
Button restore_data = (Button) findViewById(R.id.restore_data);
restore_data.setOnClickListener(this);
}
public void onClick(View view) {
int id = view.getId();
switch (id) {
case R.id.save_data:
SharedPreferences.Editor editor = getSharedPreferences("userData",
MODE_PRIVATE).edit();
editor.putString("userName", "nanli");
editor.putInt("age", 18);
editor.putBoolean("isMan", true);
editor.apply();
break;
case R.id.restore_data:
SharedPreferences pref = getSharedPreferences("userData", MODE_PRIVATE);
String name = pref.getString("userName", "");
int age = pref.getInt("age", 0);
boolean isManed = pref.getBoolean("isMan", false);
Log.d("MainActivity", "name is " + name);
Log.d("MainActivity", "age is " + age);
Log.d("MainActivity", "isMan is " + isManed);
Toast.makeText(this,
"name is " + name + "\n" + "age is " + age + "\n" + "isMan is " + isManed
, Toast.LENGTH_SHORT)
.show();
break;
}
}
}
附录.参考资料
《第一行代码》6.3.2 从SharedPreferences中读取数据
资源下载
安卓学习——从SharedPreferences中读取数据的实例
总结
大家喜欢的话,给个👍,点个关注!继续跟大家分享敲代码过程中遇到的问题!
|