MVP实现列表

Model层:
public class ShowModelImpl implements ShowModel {

    @Override
   public void getData( final OnFinishListener listener) {
          String url ="http://www.93.gov.cn/93app/data.do?channelId=0&startNum=0";
        AsyncHttpClient asyncHttpClient = new AsyncHttpClient();
        asyncHttpClient.get(url, new TextHttpResponseHandler() {
            @Override
            public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {

            }

            @Override
            public void onSuccess(int statusCode, Header[] headers, String responseString) {
             //直接加高到主线程
                Gson gson = new Gson();
                News news = gson.fromJson(responseString, News.class);
                //接口回调
                if (listener!=null){
                    listener.onSuccess(news);
                }

            }
        });

        /*//构建OK对象
        OkHttpClient okHttpClient = new OkHttpClient.Builder().build();
        //构建Request
        final Request request = new Request.Builder().url(url).build();
        //得到Call
        Call call = okHttpClient.newCall(request);
        //执行异步
        call.enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {

            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
            //直接回调到子线程
                String json = response.body().string();
                Gson gson = new Gson();
                News news = gson.fromJson(json, News.class);
                //接口回调

    if (listener!=null){
        listener.onSuccess(news);
    }
            }
        });*/
    }
}
//M层的接口
public interface ShowModel {
    void getData(OnFinishListener listener);
}

//presenter层
public class ShowPresenterImpl implements ShowPresenter,OnFinishListener {
    ShowView showView;
    private final ShowModel showModel;
  //初始化
    public ShowPresenterImpl(ShowView showView){
        this.showView  = showView;
        //多态
        showModel = new ShowModelImpl();
    }

    @Override
    public void relevance() {
        //p跟m关联
        showModel.getData(this);
    }

    @Override
    public void onSuccess(News news) {
        //关联view
     showView.showData(news);
    }
}
//p层接口


public interface ShowPresenter {
    void relevance();
}
//view层
public class MainActivity extends AppCompatActivity implements ShowView{
 private  String url ="http://www.93.gov.cn/93app/data.do?channelId=0&startNum=0";
    private RecyclerView rlr;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //找控件
        rlr = (RecyclerView) findViewById(R.id.rlv);
        //设置成布局管理器
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
        rlr.setLayoutManager(linearLayoutManager);

        //p关联v
        ShowPresenterImpl presenter = new ShowPresenterImpl(this);
        //p关联m 做网络请求
        presenter.relevance();
    }

    @Override
    public void showData(News news) {
        MyAdapter adapter = new MyAdapter(this,news);
        rlr.setAdapter(adapter);
    }
}
//v层的接口
public interface ShowView {
    void showData(News news);
}
//OnFinishListener接口


public interface OnFinishListener {
    void onSuccess(News news);
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值