MVP的简单使用

来源:互联网 发布:增值税发票的税率算法 编辑:程序博客网 时间:2024/05/22 06:51

布局样式

<EditText    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:id="@+id/edit_01" /><EditText    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:id="@+id/edit_02" /><Button    android:text="登录"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:id="@+id/btn"    />
Activity主页面

public class MainActivity extends AppCompatActivity implements V_mvp {    private EditText editText1;    private EditText editText2;    private Button btn;    private P_mvp p_mvp;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        editText1 = (EditText) findViewById(R.id.edit_01);        editText2 = (EditText) findViewById(R.id.edit_01);        btn = (Button) findViewById(R.id.btn);        p_mvp = new P_mvp(this);        btn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                p_mvp.denglu(editText1.getText().toString(),editText2.getText().toString());            }        });    }    @Override    public void sjh() {        Toast.makeText(this, "手机号不能为空", Toast.LENGTH_SHORT).show();    }    @Override    public void mm() {        Toast.makeText(this, "密码不能为空", Toast.LENGTH_SHORT).show();    }    @Override    public void cg(Object object) {        runOnUiThread(new Runnable() {            @Override            public void run() {                Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show();            }        });    }    @Override    public void sb(int code) {        Toast.makeText(MainActivity.this, "登录失败", Toast.LENGTH_SHORT).show();    }}
P_Presenter页面

public class P_mvp {    private final V_mvp v_mvp;    private final M_mvp m_mvp;    public P_mvp(V_mvp v_mvp) {        this.v_mvp = v_mvp;        m_mvp = new M_mvp();    }    public void denglu(String sjh, String mm) {        if(TextUtils.isEmpty(sjh)){            v_mvp.sjh();            return;        }        if(TextUtils.isEmpty(mm)){            v_mvp.mm();            return;        }        m_mvp.chengong(sjh,mm, new ChengGongShiBai() {            @Override            public void chenggong(String data) {                v_mvp.cg(data);            }            @Override            public void shibai(int code) {                v_mvp.sb(code);            }        });    }}
V_View页面_接口类

public interface V_mvp {    // 手机号码为空    public void sjh();    //    密码为空    public void mm();    // 登陆成功    public void cg(Object object);    //  登陆失败    public void sb(int code);}
M_Model页面

public class M_mvp {    public void chengong(String sjh, String mm, final ChengGongShiBai chengbai) {        OkHttpClient okHttpClient = new OkHttpClient();        RequestBody body = new FormBody.Builder()                .add("pscid","39")                .add("page","1")                .build();        final Request request = new Request.Builder().url("http://120.27.23.105/product/getProducts")                .post(body)                .build();        okHttpClient.newCall(request).enqueue(new Callback() {            @Override            public void onFailure(Call call, IOException e) {                chengbai.shibai(1);            }            @Override            public void onResponse(Call call, Response response) throws IOException {                String result = response.body().string() ;                chengbai.chenggong(result);            }        });    }}
ModelCallBack接口页面

public interface ChengGongShiBai {    public void chenggong(String data);    public void shibai(int code);}



原创粉丝点击