美文网首页
【九】数据持久化

【九】数据持久化

作者: 晴天ccc | 来源:发表于2018-03-12 09:09 被阅读0次

数据持久化的三种方式:

文件存储读写

sharedPreference(类似iOS的NSUserdefault)

SQLite

sharedPreference为例

当我们的应用想要保存用户的一些偏好参数,比如是否自动登陆,是否记住账号密码,是否在Wifi下才能等。

通常使用 一个轻量级的存储类——SharedPreferences来保存用户偏好的参数!SharedPreferences也是使用xml文件, 然后类似于Map集合,使用键-值的形式来存储数据;我们只需要调用SharedPreferences的getXxx(name), 就可以根据键获得对应的值!使用起来很方便。

编写简单的SP工具类:SharedHelper.java

/**

 * Created by Jay on 2015/9/2 0002.

 */

public class SharedHelper {

    private Context mContext;

    public SharedHelper() {

    }

    public SharedHelper(Context mContext) {

        this.mContext = mContext;

    }

    //定义一个保存数据的方法

    public void save(String username, String passwd) {

        SharedPreferences sp = mContext.getSharedPreferences("mysp", Context.MODE_PRIVATE);

        SharedPreferences.Editor editor = sp.edit();

        editor.putString("username", username);

        editor.putString("passwd", passwd);

        editor.commit();

        Toast.makeText(mContext, "信息已写入SharedPreference中", Toast.LENGTH_SHORT).show();

    }

    //定义一个读取SP文件的方法

    public Map<String, String>read() {

        Map<String, String>data = new HashMap<String, String>();

        SharedPreferences sp = mContext.getSharedPreferences("mysp", Context.MODE_PRIVATE);

        data.put("username", sp.getString("username", ""));

        data.put("passwd", sp.getString("passwd", ""));

        return data;

    }

}

最后是MainActivity.java实现相关逻辑:

public class MainActivity extends AppCompatActivity {

    private EditText editname;

    private EditText editpasswd;

    private Button btnlogin;

    private String strname;

    private String strpasswd;

    private SharedHelper sh;

    private Context mContext;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        mContext = getApplicationContext();

        sh = new SharedHelper(mContext);

        bindViews();

    }

    private void bindViews() {

        editname = (EditText)findViewById(R.id.editname);

        editpasswd = (EditText)findViewById(R.id.editpasswd);

        btnlogin = (Button)findViewById(R.id.btnlogin);

        btnlogin.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                strname = editname.getText().toString();

                strpasswd = editpasswd.getText().toString();

                sh.save(strname,strpasswd);

            }

        });

    }

    @Override

    protected void onStart() {

        super.onStart();

        Map<String,String>data = sh.read();

        editname.setText(data.get("username"));

        editpasswd.setText(data.get("passwd"));

    }

}

相关文章

  • 【九】数据持久化

    一、Android中常用的5大布局方式有以下几种: 1.线性布局(LinearLayout):按照垂直或者水平方向...

  • Docker学习(13) 卷与持久化数据

    Docker学习(13) 卷与持久化数据 卷与持久化数据——简介 数据主要分为两种:持久化和非持久化。 持久化:就...

  • iOS本地数据持久化

    iOS本地数据持久化 iOS本地数据持久化

  • Redis-2 数据持久化及持久化配置

    一、数据持久化 开启持久化功能后,重启redis,数据会自动通过持久化文件恢复!! 1、redis持久化 – 两种...

  • 面试相关

    数据持久化 什么是持久化狭义的理解: “持久化”仅仅指把域对象永久保存到数据库中;广义的理解,“持久化”包括和数据...

  • GeekBand iOS开发高级进阶学习笔记(第四周)

    简易数据存储 数据持久化分为本体持久化和云端持久化本体持久化可以存在本地文件或数据库。云端可以存在iCloud,存...

  • iOS数据持久化

    Title: iOS数据持久化 ##数据持久化概念 数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型...

  • redis与memcache区别

    1、持久化 redis是支持持久化存储,宕机重启数据不会丢失,memcache重启后数据丢失 redis持久化的方...

  • iOS本地数据持久化

    转载自:CocoaChina - iOS本地数据持久化 本文内容:iOS本地数据持久化的几种类型iOS本地数据持久...

  • Android数据持久化的设计

    title: Android数据持久化 版 本 历 史 1. 数据持久化简介 1.1 数据持久化的需求 在网络异常...

网友评论

      本文标题:【九】数据持久化

      本文链接:https://www.haomeiwen.com/subject/vcfpfftx.html