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'
阅读全文
0 0
- MVP
- MVP
- MVP
- MVP
- MVP
- MVP
- MVP
- MVP
- mvp
- MVP
- MVP
- mvp
- MVP
- MVP
- MVP
- MVP
- MVP
- MVP
- DAY004
- js中alert()|confirm()|prompt()的用法
- c++ stl set 有序性
- 指针--类型组合
- scala学习一
- MVP
- 敲代码时的一个小疑问
- matlab图像类型转换以及uint8、double、im2double、im2uint8和mat2gray等说明
- 11.5-关于用Python建网站
- Django中关于MVC和MVT
- Boxes And Balls CodeForces
- C++的命名空间 namespace
- PHP中防止SQL注入的方法
- golang中map和slice的查询速度比较,结果意想不到