亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

MVPXlistView展示上拉下拉效果

2019-10-21 21:33:12
字體:
來源:轉載
供稿:網友

本文實例為大家分享了MVPXlistView上拉下拉展示的具體代碼,供大家參考,具體內容如下

抽基類

package com.gs.gg.day8.back; import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity; public abstract class BackActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  init(); }  protected abstract int getLayout(); protected abstract void initViews(); protected abstract void setOnClick(); protected abstract void processLogic(); void init(){  if (getLayout()!=0){   setContentView(getLayout());   initViews();   setOnClick();   processLogic();  }else {   throw new IllegalStateException("請加載布局文件");  } }}

Model

package com.gs.gg.day8.model; import com.gs.gg.day8.callbase.MyCallBase; public interface Model { void getData(String mUrl,String parants,MyCallBase callBase);}

MyCallBase

package com.gs.gg.day8.callbase; import com.gs.gg.day8.bean.User; public interface MyCallBase { void setData(User data); void setError(String error);}

Modelimpl

package com.gs.gg.day8.model; import android.os.Handler;import android.os.Looper;import android.os.Message; import com.google.gson.Gson;import com.gs.gg.day8.R;import com.gs.gg.day8.bean.User;import com.gs.gg.day8.callbase.MyCallBase;import com.gs.gg.day8.util.HttpUtils; import java.net.URL; public class Modelimpl implements Model { private Handler handler=new Handler(){  @Override  public void handleMessage(Message msg) {   super.handleMessage(msg);   String JsonStr= (String) msg.obj;   Gson gson=new Gson();   User user= gson.fromJson(JsonStr,User.class);   callBase.setData(user);  } }; private MyCallBase callBase; @Override public void getData(final String mUrl, String parants, final MyCallBase callBase) {  this.callBase=callBase;  new Thread(new Runnable() {   @Override   public void run() {    try {     String json = HttpUtils.get(mUrl);     handler.sendMessage(handler.obtainMessage(0,json));    } catch (Exception e) {     Looper.prepare();     callBase.setError("異常");     Looper.loop();    }   }  }).start(); }}

HttpUtils

package com.gs.gg.day8.util; import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL; public class HttpUtils { public static String get(String mUrl) throws Exception {  URL url=new URL(mUrl);  HttpURLConnection connection = (HttpURLConnection) url.openConnection();  //設置請求方式  connection.setRequestMethod("GET");  connection.setConnectTimeout(5000);  InputStream stream = connection.getInputStream();  String inputStr = getInputStr(stream);  return inputStr; }  //把流轉成字符串 private static String getInputStr(InputStream stream) throws IOException {  BufferedReader br = new BufferedReader(new InputStreamReader(stream));  StringBuffer sb = new StringBuffer();  String str = null;  while ((str = br.readLine()) != null) {   sb.append(str);  }  return sb.toString(); }}

IView

package com.gs.gg.day8.view; import com.gs.gg.day8.bean.User; public interface IView { void success(User data); void error(String error);}

Presenter

package com.gs.gg.day8.presenter; public interface Presenter { void startReponse(String url,String parants);}

PresenterImpl

package com.gs.gg.day8.presenter; import com.gs.gg.day8.bean.User;import com.gs.gg.day8.callbase.MyCallBase;import com.gs.gg.day8.model.Modelimpl;import com.gs.gg.day8.view.IView; public class PresenterImpl implements Presenter { private IView iView; private Modelimpl model;  public PresenterImpl(IView iView) {  this.iView = iView;  model = new Modelimpl(); }  @Override public void startReponse(String mUrl, String parants) {  model.getData(mUrl,parants, new MyCallBase() {   @Override   public void setData(User data) {    iView.success(data);   }    @Override   public void setError(String error) {    iView.error(error);   }  }); } public void onDotch(){  if (iView!=null){   iView=null;  }  if (model!=null){   model=null;  } }}

MainActivity

package com.gs.gg.day8; import android.widget.Toast; import com.gs.gg.day8.adapter.MyAdapter;import com.gs.gg.day8.back.BackActivity;import com.gs.gg.day8.bean.User;import com.gs.gg.day8.presenter.PresenterImpl;import com.gs.gg.day8.view.IView;import com.gs.gg.myxlist.me.maxwin.view.XListView; import java.util.ArrayList; public class MainActivity extends BackActivity implements IView,XListView.IXListViewListener {  private XListView xlist_item; private PresenterImpl presenter; private ArrayList<User.DataBean> mlist=new ArrayList<>(); private String muUrl="http://www.xieast.com/api/news/news.php?page="; private int i=1; private MyAdapter adapter;  @Override protected int getLayout() {  return R.layout.activity_main; }  @Override protected void initViews() {  xlist_item = findViewById(R.id.Xlist_item); }  @Override protected void setOnClick() {  xlist_item.setPullLoadEnable(true);  xlist_item.setXListViewListener(this); }  @Override protected void processLogic() {  presenter = new PresenterImpl(this);  adapter = new MyAdapter(MainActivity.this,mlist);  xlist_item.setAdapter(adapter);  presenter.startReponse(muUrl+i, null); }  @Override public void success(User data) {  mlist.addAll(data.getData());  adapter.notifyDataSetChanged();  stop(); }  @Override public void error(String error) {  Toast.makeText(this, "異常", Toast.LENGTH_SHORT).show(); } private void stop() {  xlist_item.stopRefresh();  xlist_item.stopLoadMore(); }  @Override public void onRefresh() {  i = 1;  mlist.clear();  presenter.startReponse(muUrl + i, null); }  @Override public void onLoadMore() {  i++;  presenter.startReponse(muUrl + i, null); }}

MyAdapter

package com.gs.gg.day8.adapter; import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView; import com.gs.gg.day8.R;import com.gs.gg.day8.bean.User;import com.nostra13.universalimageloader.core.ImageLoader; import java.util.ArrayList; public class MyAdapter extends BaseAdapter { public MyAdapter(Context context, ArrayList<User.DataBean> mlist) {  this.context = context;  this.mlist = mlist; }  private Context context; private ArrayList<User.DataBean> mlist;  @Override public int getCount() {  return mlist.size(); }  @Override public Object getItem(int position) {  return mlist.get(position); }  @Override public long getItemId(int position) {  return position; }  @Override public View getView(int position, View convertView, ViewGroup parent) {  HolderView holder=null;  if (convertView==null){   convertView= View.inflate(context, R.layout.item,null);   holder=new HolderView();   holder.textName=convertView.findViewById(R.id.text);   holder.imageName=convertView.findViewById(R.id.image);   convertView.setTag(holder);  }else {   holder= (HolderView) convertView.getTag();  }  User.DataBean bean = mlist.get(position);  holder.textName.setText(bean.getTitle());  ImageLoader.getInstance().displayImage(mlist.get(position).getThumbnail_pic_s(),holder.imageName);  return convertView; } class HolderView{  TextView textName;  ImageView imageName; }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本成人激情视频| 中文字幕欧美日韩在线| 日韩av在线网站| 91精品在线一区| 精品调教chinesegay| 色综合伊人色综合网站| 日韩欧美在线视频观看| 欧美精品午夜视频| 欧美性猛交xxxx富婆弯腰| 欧美日韩视频免费播放| 国产日韩欧美电影在线观看| 国产亚洲精品高潮| 色综合久久中文字幕综合网小说| 精品久久中文字幕| 日韩精品在线免费观看| 岛国av一区二区| 91极品视频在线| 欧美成年人视频网站| 日韩美女视频免费看| 成人免费网视频| 青青a在线精品免费观看| 亚洲xxxx妇黄裸体| 久久夜色撩人精品| 亚洲欧美国产高清va在线播| 亚洲精品欧美一区二区三区| 国产美女精品视频免费观看| 国产亚洲美女精品久久久| 一区二区在线视频| 国产精品久久婷婷六月丁香| 亚洲欧美国产精品va在线观看| 久久亚洲一区二区三区四区五区高| 欧美性资源免费| 亚洲精品日韩丝袜精品| 久久久成人的性感天堂| 亚洲国产美女久久久久| 日韩中文字幕视频在线观看| xxx欧美精品| 91视频88av| 亚洲跨种族黑人xxx| 在线播放日韩欧美| 视频在线观看一区二区| 国产欧美在线播放| 国产精品视频久| 97av在线视频免费播放| 国产精品高潮在线| 久久久久久亚洲精品| 国产成人精品一区二区在线| 福利精品视频在线| 2023亚洲男人天堂| 欧美黄色小视频| 精品国产乱码久久久久久虫虫漫画| 日韩一区二区精品视频| 亚洲国产日韩欧美在线动漫| 久久精品2019中文字幕| 欧美精品激情在线观看| 91老司机在线| 亚洲18私人小影院| 亚洲天堂成人在线| 欧美性一区二区三区| 国产女同一区二区| 国产一区二区在线免费| 91精品国产高清久久久久久久久| 欧美在线一级视频| 国产精品久久久久久久7电影| 欧美贵妇videos办公室| 亚洲午夜久久久影院| 成人精品视频99在线观看免费| 国产成人一区二区三区小说| 日韩免费av在线| 成人综合网网址| 国产日韩欧美另类| 国产精品久久久久9999| 国产成人精品在线视频| 国产97人人超碰caoprom| 欧美激情一区二区久久久| 日韩男女性生活视频| 欧美激情在线播放| 国产精品免费一区豆花| 日韩精品视频免费在线观看| 人妖精品videosex性欧美| 亚洲午夜未删减在线观看| 国产精品爽黄69天堂a| 国产福利视频一区二区| 91老司机精品视频| 国产精品黄页免费高清在线观看| 久久精品在线视频| 亚洲成人a级网| 精品精品国产国产自在线| 精品国产乱码久久久久久婷婷| 国产精品久久久久福利| 欧美裸体xxxx极品少妇| 国产精品久久久久久久久久新婚| 欧美激情国内偷拍| 91亚洲精品在线| 免费97视频在线精品国自产拍| 欧美色视频日本高清在线观看| 欧美激情国内偷拍| 精品美女久久久久久免费| 在线观看日韩专区| 欧美成人亚洲成人日韩成人| 97国产成人精品视频| 国产成人精品在线播放| 亚洲午夜精品久久久久久久久久久久| 日韩性生活视频| 深夜成人在线观看| 亚洲国产精品成人一区二区| 亚洲精品99999| 国产成人鲁鲁免费视频a| 中文字幕国产精品久久| 91精品国产网站| 亚洲深夜福利在线| 国产精品久久久久久久久久久久| 在线精品播放av| 欧美电影免费观看电视剧大全| 成人免费视频在线观看超级碰| 一区二区三区四区在线观看视频| 91国产视频在线播放| 久久久久久久999| 亚洲一区二区久久久久久| 日本19禁啪啪免费观看www| 中文字幕综合一区| 亚洲中国色老太| 中文字幕欧美日韩va免费视频| 日本一欧美一欧美一亚洲视频| 国产欧美一区二区| 岛国视频午夜一区免费在线观看| 国产欧美一区二区三区在线看| 91社区国产高清| 日韩中文字幕在线视频播放| 欧美日韩国产一中文字不卡| 欧美日韩国产页| 日韩一区二区福利| 日韩欧美在线视频免费观看| 亚洲免费精彩视频| 伊人一区二区三区久久精品| 亚洲国产精品va在线观看黑人| 日韩av观看网址| 51色欧美片视频在线观看| 一区二区三区视频免费| 日韩中文字幕在线精品| 亚洲精品成人久久久| 国产精品91免费在线| 欧美性资源免费| 久久大大胆人体| 日本亚洲欧洲色α| 久久影院在线观看| 国产啪精品视频| 国产aⅴ夜夜欢一区二区三区| 久久久久久久久久久国产| 久久九九国产精品怡红院| 欧洲s码亚洲m码精品一区| 中文字幕无线精品亚洲乱码一区| 国模私拍一区二区三区| 亚洲va欧美va国产综合剧情| 亚洲国产精品热久久| 国产在线观看一区二区三区| 亚洲美女av在线| 最新中文字幕亚洲| 琪琪亚洲精品午夜在线| 亚洲欧美日韩高清| 国产主播在线一区| 国产视频精品va久久久久久| 欧美在线观看一区二区三区| 欧美电影《睫毛膏》|