MVP

来源:互联网 发布:php mysql 长连接 编辑:程序博客网 时间:2024/06/05 16:20
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'

原创粉丝点击