基于MVP设计模式的SP存储与读取

1.Model类

   用来专门进行数据库操作,文件操作,网络操作等相关

import android.content.Context;
import android.content.SharedPreferences;

public class SpModel {
    private SharedPreferences.Editor mEdit;

    //进行注册操作
    public boolean register(String name, String pwd, Context mContext) {
        SharedPreferences sp = mContext.getSharedPreferences("godv", Context.MODE_PRIVATE);
        mEdit = sp.edit();
        mEdit.putString(name, pwd);
        mEdit.apply();
        return true;
    }

    //读取操作
    public String read(String name, Context mContext) {
        SharedPreferences sp = mContext.getSharedPreferences("godv", Context.MODE_PRIVATE);
        String str = sp.getString(name, null);
        return str;
    }

    //进行登录操作
    public void login(String name, String pwd) {

    }
}

2.presenter类

   用来将view层数据传递给model层进行处理、将model层返回的数据返回给View处理

注意presenter需要持有model层引用、View层引用(利用构造方法,这里的View泛指Activity、Fragment)

import android.content.Context;

public class SpPresenter {
    //持有m引用
    private SpModel mSpModel;
    private SpView spView;

    public SpPresenter(SpView spView) {
        this.spView = spView;
        this.mSpModel = new SpModel();
    }

    public void register(String name, String pwd, Context mContext) {
        boolean register = mSpModel.register(name, pwd, mContext);
        spView.onRegistResult(register);
    }

    public void read(String name, Context mContext) {
        String res = mSpModel.read(name, mContext);
        spView.onReadResult(res);
    }

}

3.View接口

   主要是用来与Activity进行交互 在这里定义回调方法 用来返回数据

public interface SpView {
     void onRegistResult(boolean b);

     void onReadResult(String res);
}

4.Activity类

   负责将布局中数据传递给Presenter处理并处理返回数据

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements SpView {

    private SpPresenter mSpPresenter = new SpPresenter(this);
    private EditText mName;
    private EditText mPwd;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mName = findViewById(R.id.et_sp_key);
        mPwd = findViewById(R.id.et_sp_value);
    }

    public void save(View view) {
        String name = mName.getText().toString().trim();
        String pwd = mPwd.getText().toString().trim();
        mSpPresenter.register(name, pwd, this);
    }

    public void read(View view) {
        String name = mName.getText().toString().trim();
        mSpPresenter.read(name, this);
    }

    @Override
    public void onRegistResult(boolean b) {
        Toast.makeText(this, "注册成功", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onReadResult(String res) {
        if (res == null) {
            Toast.makeText(this, "没有", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(this, res, Toast.LENGTH_SHORT).show();
        }
    }
}

简单的MVP设计模式

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值