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

首頁 > 系統 > Android > 正文

XListView實現多條目網絡數據刷新加載 網絡加載圖片

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

本文實例為大家分享了XListView實現刷新加載的具體代碼,供大家參考,具體內容如下

MainActivity.java

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); pager = findViewById(R.id.viewpager); group = findViewById(R.id.group); li = new ArrayList<>(); li.add(new Afragment()); li.add(new Bfragment()); li.add(new Cfragment()); li.add(new Dfragment()); pager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {  @Override  public Fragment getItem(int position) {  return li.get(position);  }  @Override  public int getCount() {  return li.size();  } }); group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {  @Override  public void onCheckedChanged(RadioGroup radioGroup, int i) {  switch (i){   case R.id.r1:   pager.setCurrentItem(0);   break;   case R.id.r2:   pager.setCurrentItem(1);   break;   case R.id.r3:   pager.setCurrentItem(2);   break;   case R.id.r4:   pager.setCurrentItem(3);   break;  }  } }); }

activity_main.xml

 <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".ui.MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <android.support.v4.view.ViewPager  android:id="@+id/viewpager"  android:layout_width="match_parent"  android:layout_height="0dp"  android:layout_weight="9"  >  </android.support.v4.view.ViewPager>  <RadioGroup  android:id="@+id/group"  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:layout_weight="1"  android:orientation="horizontal"  >  <RadioButton  android:id="@+id/r1"  android:layout_width="wrap_content"  android:layout_height="match_parent"  android:button="@null"  android:gravity="center"  android:layout_weight="1"  android:text="Afrag"/>  <RadioButton  android:id="@+id/r2"  android:layout_width="wrap_content"  android:layout_height="match_parent"  android:button="@null"  android:gravity="center"  android:layout_weight="1"  android:text="Bfrag"/>  <RadioButton  android:id="@+id/r3"  android:layout_width="wrap_content"  android:layout_height="match_parent"  android:button="@null"  android:gravity="center"  android:layout_weight="1"  android:text="Cfrag"/>  <RadioButton  android:id="@+id/r4"  android:layout_width="wrap_content"  android:layout_height="match_parent"  android:button="@null"  android:gravity="center"  android:layout_weight="1"  android:text="Dfrag"/>  </RadioGroup>  </LinearLayout> </android.support.constraint.ConstraintLayout>

Afragment.java

public class Afragment extends Fragment{ private int page=1; private XListView listView; private MyBaseAdapter adapter; ResponseBean responseBean;  @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {  View view = View.inflate(getActivity(), R.layout.afrag, null);   listView = view.findViewById(R.id.xlv);  adapter = new MyBaseAdapter(getLayoutInflater());  listView.setAdapter(adapter);   listView.setPullLoadEnable(true);  listView.setXListViewListener(new XListView.IXListViewListener() {  @Override  public void onRefresh() {   page=0;   loadData(page);  }   @Override  public void onLoadMore() {   loadData(page);   }  });  loadData(page);  return view; }  private String url =  "http://apis.juhe.cn/cook/query?key=3ec004200a6a2f4cf4774e480c006375&menu=%E8%A5%BF%E7%BA%A2%E6%9F%BF&rn=10&pn=";  private void loadData(int page){   String urlString=url+page;  new AsyncTask<String,Void,List<DataItem>>(){   @Override  protected List<DataItem> doInBackground(String... strings) {   try {   URL url = new URL(strings[0]);   HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();   urlConnection.setRequestMethod("GET");   urlConnection.setReadTimeout(5000);   urlConnection.setConnectTimeout(5000);   int responseCode = urlConnection.getResponseCode();   if (responseCode==200){    String result=String2(urlConnection.getInputStream());    responseBean = new Gson().fromJson(result, ResponseBean.class);   }else {    }   return responseBean == null ?null:responseBean.getResult().getData();   } catch (MalformedURLException e) {   e.printStackTrace();   } catch (IOException e) {   e.printStackTrace();   }   return null;  }   @Override  protected void onPostExecute(List<DataItem> dataItems) {   super.onPostExecute(dataItems);   if (dataItems == null) {   Toast.makeText(getActivity(), "請求數據錯誤", Toast.LENGTH_LONG).show();   return;   }   updateData(dataItems);   loadCompleted();   }  }.execute(urlString); }  private void updateData(List<DataItem> dataItems){  if (page==0){  adapter.setDatas(dataItems);  }else {  adapter.addDatas(dataItems);   }  }  private void loadCompleted(){  page++;  listView.stopRefresh();  listView.stopLoadMore(); }  private String String2(InputStream stream){  StringBuilder sb = new StringBuilder();  BufferedReader reader = new BufferedReader(new InputStreamReader(stream));  try {  for (String tmp=reader.readLine();tmp!=null;tmp=reader.readLine()){   sb.append(tmp);  }  } catch (IOException e) {  e.printStackTrace();  }  return sb.toString(); } }

MyBaseAdapter.java

 

public class MyBaseAdapter extends BaseAdapter{ private List<DataItem> datas; private LayoutInflater layoutInflater; public MyBaseAdapter(LayoutInflater layoutInflater) { this.layoutInflater = layoutInflater; datas=new ArrayList<>(); } public void setDatas(List<DataItem> datas) { datas.clear(); if (datas!=null){  datas.addAll(datas); } notifyDataSetChanged(); } public void addDatas(List<DataItem> dataItems) { if (dataItems!=null){  datas.addAll(dataItems);  notifyDataSetChanged(); } } public final int VIEW_TYPE_COUNT=2; public final int IMAGE_TEXT_TYPE=0; public final int TEXT_TYPE=1; @Override public int getItemViewType(int position) { if (position % 2==0){  return IMAGE_TEXT_TYPE; }else {  return TEXT_TYPE; } } @Override public int getViewTypeCount() { return VIEW_TYPE_COUNT; } @Override public int getCount() { return datas.size(); } @Override public Object getItem(int i) { return datas.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { if (getItemViewType(i)==IMAGE_TEXT_TYPE){  ViewHolder viewHolder=null;  if (view==null){  view = layoutInflater.inflate(R.layout.item, viewGroup,false);  viewHolder = new ViewHolder(view);  }else {  viewHolder = (ViewHolder) view.getTag();  }  viewHolder.bindData((DataItem) getItem(i)); }else {  ViewHolder2 viewHolder2;  if (view==null){  view = layoutInflater.inflate(R.layout.item_text, viewGroup, false);  viewHolder2 = new ViewHolder2();  viewHolder2.textView = view.findViewById(R.id.text);  view.setTag(viewHolder2);  }else {  viewHolder2 = (ViewHolder2) view.getTag();  }  viewHolder2.textView.setText(datas.get(i).getTitle()); } return view; } public class ViewHolder{ private ImageView icon; private TextView title; private TextView date; public ViewHolder(View view) {  icon = view.findViewById(R.id.icon);  date = view.findViewById(R.id.date);  view.setTag(this); } public void bindData(DataItem item) {  title.setText(item.getTitle());  date.setText(item.getId());  ImageLoader.getInstance().displayImage(item.getFirst(),icon   , ImageloaderConfigs.getDefult(icon.getContext())); } } public class ViewHolder2{ TextView textView; }}

ImageLoaderConfigs.java

public class ImageloaderConfigs { public static ImageLoaderConfiguration getImageLoader(Context context){ ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(context)  .memoryCacheSizePercentage(13)  .diskCacheSize(50*1024*1024)  .defaultDisplayImageOptions(DisplayImageOptions.createSimple())  .writeDebugLogs()  .build(); return configuration; } public static DisplayImageOptions getDefult(Context context){ DisplayImageOptions imageOptions = new DisplayImageOptions.Builder()  .cacheInMemory(true)  .cacheOnDisk(true)  .bitmapConfig(Bitmap.Config.RGB_565)  .imageScaleType(ImageScaleType.EXACTLY_STRETCHED)  .displayer(new CircleBitmapDisplayer())  .build(); return imageOptions; }}

App.java

public class App extends Application{ @Override public void onCreate() { super.onCreate(); ImageLoader.getInstance().init(ImageloaderConfigs.getImageLoader(this)); }}

ResponsBean.java

public class ResponseBean { private int resultcode; private String reason; private Result result; public int getResultcode() { return resultcode; } public String getReason() { return reason; } public Result getResult() { return result; } public class Result{ private List<DataItem> data; public List<DataItem> getData() {  return data; } }}

DataItem.java

public class DataItem { private String id; private String title; private List<String> albums; public String getId() { return id; } public String getTitle() { return title; } public List<String> getAlbums() { return albums; } public String getFirst(){ return albums==null || albums.size()==0? "" : albums.get(0); }

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


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美国产精品va在线观看| 亚洲精品一区二区在线| 丝袜亚洲欧美日韩综合| 久久99青青精品免费观看| 国产日韩欧美成人| 欧美日韩性视频| 成人精品一区二区三区电影免费| 欧美日韩激情小视频| 国产免费一区二区三区在线能观看| 国产乱肥老妇国产一区二| 亚洲欧洲免费视频| 成人精品网站在线观看| 2019亚洲日韩新视频| 国产精品jvid在线观看蜜臀| 欧美裸体xxxx极品少妇| 欧美国产日韩一区二区在线观看| 成人激情视频网| 国产精品女主播| 欧美区在线播放| 精品国偷自产在线视频99| 欧美交受高潮1| 国产亚洲精品一区二555| 亚洲国产美女精品久久久久∴| 国产亚洲精品一区二555| 91麻豆国产语对白在线观看| 欧美亚洲一区在线| 亚洲高清免费观看高清完整版| 91丨九色丨国产在线| 色综合五月天导航| 欧美性xxxxx极品娇小| 国产成人综合亚洲| 91在线精品视频| 成人女保姆的销魂服务| 日韩亚洲欧美中文高清在线| 亚洲国产欧美精品| 免费av在线一区| 亚洲精品久久久久中文字幕欢迎你| 久久在线视频在线| 日本电影亚洲天堂| 色妞在线综合亚洲欧美| 欧美一区二区三区免费视| 久久中文久久字幕| 欧美成人免费视频| 亚洲激情国产精品| 精品美女永久免费视频| 国产成人高潮免费观看精品| 6080yy精品一区二区三区| 911国产网站尤物在线观看| 久久久久久久久网站| 91社影院在线观看| 日韩在线观看免费高清完整版| 久久大大胆人体| 深夜福利一区二区| 成人性教育视频在线观看| 国产日韩亚洲欧美| 亚洲欧美精品中文字幕在线| 国产在线拍揄自揄视频不卡99| 成人精品一区二区三区电影免费| zzijzzij亚洲日本成熟少妇| 高跟丝袜一区二区三区| 成人xxxx视频| 欧美激情视频在线免费观看 欧美视频免费一| 国产精品爽爽ⅴa在线观看| 综合网中文字幕| 国产精品久久999| 国产精品一久久香蕉国产线看观看| 在线性视频日韩欧美| 久热精品视频在线| 欧美日韩国产中文精品字幕自在自线| 中文字幕日韩欧美精品在线观看| 夜夜嗨av一区二区三区四区| 国产精品自拍偷拍| 国产精品热视频| 国产美女久久精品香蕉69| 成人免费视频a| 97视频在线观看视频免费视频| 福利一区视频在线观看| 中文字幕在线国产精品| 亚洲欧美另类自拍| 亚洲国产三级网| 国产精品毛片a∨一区二区三区|国| 精品亚洲精品福利线在观看| 欧美久久精品一级黑人c片| 欧美成人午夜激情| www.日韩av.com| 亚洲欧美中文在线视频| 精品国产乱码久久久久久天美| 欧美成人中文字幕| 亚洲一区制服诱惑| 亚洲精品久久久久久久久久久久| 久久亚洲国产成人| 久久精品福利视频| 国产精品永久免费在线| 国产精品一区二区三区成人| 久久中文字幕在线| 久久精品国产成人精品| zzjj国产精品一区二区| 亚洲精品v天堂中文字幕| 国模精品视频一区二区| 欧美激情欧美激情在线五月| 精品久久久久久亚洲精品| 国产精品久久久久久久久久东京| 日本午夜在线亚洲.国产| 一本大道亚洲视频| 成人福利视频网| 国产在线a不卡| 国产一区二区美女视频| 欧美日韩免费网站| 亚洲精品99久久久久中文字幕| 国产成人自拍视频在线观看| 九九热精品视频国产| 色综合久久中文字幕综合网小说| 欧美不卡视频一区发布| 久久综合免费视频| 超碰日本道色综合久久综合| 日韩电影免费观看在线观看| 亚洲欧美国产高清va在线播| 国产亚洲视频在线观看| 欧美俄罗斯乱妇| 91精品国产自产在线| 欧美日韩国产精品一区二区不卡中文| 国产成人久久精品| 国产小视频国产精品| 黄色91在线观看| 日韩成人网免费视频| 91精品中文在线| 欧美性生活大片免费观看网址| 91精品国产成人| 欧美在线不卡区| 欧美视频在线观看免费网址| 亚洲最大的成人网| 亚洲色图偷窥自拍| 日韩av影视综合网| 国产91在线高潮白浆在线观看| 日本欧美一级片| 亚洲国产精品国自产拍av秋霞| 91免费看国产| 日韩中文在线中文网在线观看| 在线观看亚洲区| 亚洲成人教育av| 国产在线拍偷自揄拍精品| 懂色av影视一区二区三区| 国产精品ⅴa在线观看h| 深夜福利亚洲导航| 国产在线一区二区三区| 国产性色av一区二区| 欧美精品videofree1080p| 日韩有码片在线观看| 日韩av影院在线观看| 在线观看日韩www视频免费| 国产精品444| 国产成人综合一区二区三区| 国产精品va在线播放我和闺蜜| 中文字幕精品一区二区精品| 亚洲最大福利视频网站| 91青草视频久久| 17婷婷久久www| 日本高清视频精品| 国产精品高清在线观看| 91久久久久久| 热久久美女精品天天吊色| 日本伊人精品一区二区三区介绍| 7m第一福利500精品视频| 97视频国产在线|