Android开发笔记(二十一)——数据存储之SharedPreference轻量级数据存储

摘要:
xmlversion=“1.0”encoding=“utf-8”?
  • xml文件,K-V形式
  • SharedPreferences:读取数据
  • SharedPreferences.Editor:写入数据

代码示例

在EditText中输入内容,点击保存,通过SharedPreferences来保存数据,点击显示按钮,把数据读取出来,显示在下面的TextView上。

SharedPreferencesActivity的java代码:

public class SharedPreferencesActivity extends AppCompatActivity {

    private EditText mEtName;
    private Button mBtnSave,mBtnShow;
    private TextView mTvContent;
    
    //读取数据
    private SharedPreferences mSharedPreferences;
    //写入数据
    private SharedPreferences.Editor mEditor;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_shared_preferences);

        mEtName=findViewById(R.id.et_name);
        mBtnSave=findViewById(R.id.btn_save);
        mBtnShow=findViewById(R.id.btn_show);
        mTvContent=findViewById(R.id.tv_content);

        //实例化mSharedPreferences,参数:文件名称,模式(通常使用PRIVATE表示当前文件只有本应用可以读写)
        mSharedPreferences = getSharedPreferences("data",MODE_PRIVATE); 
        //实例化mEditor
        mEditor = mSharedPreferences.edit();

        mBtnSave.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //实现把EditText的文本通过SharedPreferences保存起来
                //putString写入数据:键值对,参数:key,value
                mEditor.putString("name",mEtName.getText().toString()); //mEtName.getText().toString()获取EditText文本的内容
                mEditor.apply();
            }
        });

        mBtnShow.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //getString读出数据,参数:key,default(缺省的值,设为空即可)
                mTvContent.setText(mSharedPreferences.getString("name",""));
            }
        });
    }
}

对应的布局文件:

<?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"
    android:padding="15dp">

    <EditText
        android: 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="输入内容"
        />

    <Button
        android: 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="保存"
        android:layout_marginTop="10dp"
        />

    <Button
        android: 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="显示"
        android:layout_marginTop="10dp"
        />

    <TextView
        android: 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        />

</LinearLayout>

运行效果

Android开发笔记(二十一)——数据存储之SharedPreference轻量级数据存储第1张

文件保存位置:

在Android系统中,其配置文件的数据文件 以XML文件的形式保存在:/data/data/<applicationId>/shard_prefs

<applicationId> 默认是包名,但其本质不是包名

Android开发笔记(二十一)——数据存储之SharedPreference轻量级数据存储第2张

这个data.xml文件就是通过SharedPreference存储之后生成的一个xml文件

总结

//定义读写对象
SharedPreferences sharedPreferences = getSharedPreferences(“参数名”,MODE_PRIVATE)
SharedPreferences.Editor editor = sharedPreferences.edit()
//写入数据
editor.putString(“参数名”,editText.getText().toString())
editor.apply();
//读出数据
sharedPreferences.getString(“参数名”,"")

免责声明:文章转载自《Android开发笔记(二十一)——数据存储之SharedPreference轻量级数据存储》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Nacos注册中心搭建curl用法详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android中AsyncTask的简单用法

转自:http://blog.csdn.net/cjjky/article/details/6684959 在开发Android移动客户端的时候往往要使用多线程来进行操作,我们通常会将耗时的操作放在单独的线程执行,避免其占用主线程而给用户带来不好的用户体验。但是在子线程中无法去操作主线程(UI 线程),在子线程中操作UI线程会出现错误。因此android提...

SQL Server 2008 空间数据存储摘抄(SRID 点 MultiPoint LineString MultiLineString 多边形 MultiPolygon GeometryCollection)

有两种类型的空间数据。geometry数据类型支持平面或欧几里得(平面球)数据。geometry数据类型符合适用于 SQL 规范的开放地理空间联盟 (OGC) 简单特征 1.1.0 版。 另外,SQL Server 支持geography数据类型,该数据类型可存储诸如 GPS 纬度和经度坐标之类的椭圆体(圆球)数据。 geometry和geography数...

二维码扫描开源库ZXing定制化【转】

转自:http://www.cnblogs.com/sickworm/p/4562081.html 最近在用ZXing这个开源库做二维码的扫描模块,开发过程的一些代码修改和裁剪的经验和大家分享一下。 建议: 如果需要集成到自己的app上,而不是做一个demo,不推荐用ZXing的Android外围开发模块,只用核心的core目录的代码就好了。androi...

android自定义控件及自定义组合控件

一、构建自定义控件 构建自定义组件 Android中,你的应用程序程序与View类组件有着一种固定的联系,例如按钮(Button)、文本框(TextView),可编辑文本框(EditText),列表框(ListView),复选框(CheckBox),单选框(RadioButton),滚动条(Gallery),微调器(Spinner), 等等,还有一些比较先...

在vue中使用tinymce富文本编辑器,解决tinymce在dialog对话框中层级太低的问题

1、安装 npm install tinymce -S 2、把node_modules inymce里面的文件 包括tinymce文件夹 全部复制到static文件夹下面,如下图 3、tinymce默认是英文界面,还需要下载一个中文语言包zh_CN.js https://www.tiny.cloud/get-tiny/language-packages...

Android系统架构(图解)

下图是 Android 操作系统的架构,架构包括 4 层,由上到下依次是应用程序层、应用程序框架层、核心类库和 Linux 内核。其中,核心类库中包含系统库及 Android 运行环境。 图1  Android 操作系统的架构 应用程序层 Android 装配了一个核心应用程序集合,包括 E-mail 客户端、SMS 短消息程序、日历、地图、浏览器、联...