MVP

OnFinshListener:
public interface OnFinshListener {
    void setSucess(Bean bean);
}
Showmodelr:
public interface Showmodelr {
void getData(OnFinshListener listener);
}
ShowmodlerImpl:
public class ShowmodlerImpl implements Showmodelr{
    @Override
    public void getData(final OnFinshListener listener) {
        String url="http://www.93.gov.cn/93app/data.do?channelId=0&startNum=0";
        //AsyncHttpClient asyncHttpClient = new AsyncHttpClient();
        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();
                Bean bean = gson.fromJson(responseString, Bean.class);
                if(listener!=null){
                    listener.setSucess(bean);
                }
            }
        });

        /*  OkHttpClient okHttpClient = new OkHttpClient.Builder().build();
        final Request request = new Request.Builder().url(url).build();
        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();
                Bean bean = gson.fromJson(json, Bean.class);
                if(listener!=null){
                    listener.onSueccess(bean);
                }

        }
        });*/


    }
}
ShowPlater :
public interface ShowPlater  {
    void relevance();
}


ShowPlaterImpl:
public class ShowPlaterImpl implements ShowPlater, OnFinshListener{
    private final ShowmodlerImpl showmodler;
     ShowVieww showView;
    public ShowPlaterImpl(ShowVieww showView){
        this.showView=showView;
         showmodler = new ShowmodlerImpl();
    }
    @Override
    public void relevance() {
        showmodler.getData(this);
    }
    

    @Override
    public void setSucess(Bean bean) {
        showView.showData(bean);
    }
}
ShowVieww :
public interface ShowVieww {
    void showData(Bean bean);
}

MyAdpter:
public class MyAdpter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
    private Context context;
    private  Bean bean;
    public MyAdpter(Context context, Bean bean){
            this.context=context;
            this.bean=bean;
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = View.inflate(context, R.layout.item, null);
        return new MyViewHolder(view);
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
        MyViewHolder holde=(MyViewHolder)holder;

        List<Bean.DataBean> data = bean.getData();
        Bean.DataBean dataBean = data.get(position);
        String title = dataBean.getTITLE();
        String imageurl = dataBean.getIMAGEURL();
        Picasso.with(context).load(imageurl).placeholder(R.mipmap.ic_launcher).into(holde.iv);
        holde.tv.setText(title);
    }

    @Override
    public int getItemCount() {
        return bean.getData().size();
    }
    class MyViewHolder extends RecyclerView.ViewHolder{
        private ImageView iv;
        private TextView tv;
        public MyViewHolder(View itemView) {
            super(itemView);
            iv=itemView.findViewById(R.id.iv);
            tv=itemView.findViewById(R.id.tv);
        }
    }
}

Main:

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);
    }
}

 
compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.squareup.okio:okio:1.5.0'
compile 'com.squareup.okhttp3:okhttp:3.2.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'
compile 'com.google.code.gson:gson:2.8.2'
compile 'com.loopj.android:android-async-http:1.4.9'
compile 'com.android.support:appcompat-v7:26.0.0-alpha1'
compile 'com.android.support:design:26.0.0-alpha1'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值