xlistview刷新加载+Drawlayout+多条目
来源:互联网 发布:淘宝复制链接没有响应 编辑:程序博客网 时间:2024/05/21 22:54
package com.example.myapplication;import android.annotation.SuppressLint;import android.graphics.Bitmap;import android.os.AsyncTask;import android.support.v4.widget.DrawerLayout;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;import com.google.gson.Gson;import com.nostra13.universalimageloader.core.DisplayImageOptions;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;import com.nostra13.universalimageloader.core.assist.ImageScaleType;import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener{ private static final String JSON_URL = "https://www.toutiao.com/api/pc/focus/"; private List<Bean.DataBean.PcFeedFocusBean> list = new ArrayList<Bean.DataBean.PcFeedFocusBean>(); private ListView lv; private XListView xlv; private MyAdpter adpter; private DrawerLayout drawer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv = (ListView) findViewById(R.id.lv); drawer = (DrawerLayout) findViewById(R.id.drawer); intview(); new AsyncTask<String, Integer, String>() { @Override protected String doInBackground(String... strings) { String json = new NetWork().getJson(JSON_URL); return json; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); Bean bean = gson.fromJson(s, Bean.class); list = bean.getData().getPc_feed_focus(); adpter = new MyAdpter(); xlv.setAdapter(adpter); } }.execute(); } private void intview() { xlv = findViewById(R.id.xlv); xlv.setPullLoadEnable(true); xlv.setPullRefreshEnable(true); xlv.setXListViewListener(this); } public void onLode(){ xlv.stopLoadMore(); xlv.stopRefresh(); xlv.setRefreshTime("刚刚"); }//刷新 @Override public void onRefresh() { Toast.makeText(MainActivity.this,"开始刷新",Toast.LENGTH_SHORT).show(); new AsyncTask<String,Integer,String>(){ @Override protected String doInBackground(String... strings) { String json = new NetWork().getJson(JSON_URL); return json; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); Bean bean = gson.fromJson(s, Bean.class); list = bean.getData().getPc_feed_focus(); adpter = new MyAdpter(); xlv.setAdapter(adpter); onLode(); } }.execute(); }//加载 @Override public void onLoadMore() { Toast.makeText(MainActivity.this,"开始加载",Toast.LENGTH_SHORT).show(); new AsyncTask<String,Integer,String>(){ @Override protected String doInBackground(String... strings) { String json = new NetWork().getJson(JSON_URL); return json; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); Bean bean = gson.fromJson(s, Bean.class); List<Bean.DataBean.PcFeedFocusBean> data = bean.getData().getPc_feed_focus(); list.addAll(data); adpter.notifyDataSetChanged(); onLode(); } }.execute(); } private class MyAdpter extends BaseAdapter { private final int TYPE_1 = 0; private final int TYPE_2 = 1; private final int TYPE_3 = 2; @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return list.get(i); } @Override public long getItemId(int i) { return i; } @Override public int getViewTypeCount() { return 3; } @Override public int getItemViewType(int position) { if (position % 3 == 0) { return TYPE_1; } else if (position % 3 == 1) { return TYPE_2; } else { return TYPE_3; } } @Override public View getView(int i, View view, ViewGroup viewGroup) { int type = getItemViewType(i); switch (type) { case 0: ViewHolder holder; if (view == null) { holder = new ViewHolder(); view = View.inflate(MainActivity.this, R.layout.layout, null); holder.img = view.findViewById(R.id.img); holder.tv = view.findViewById(R.id.tv); view.setTag(holder); } else { holder = (ViewHolder) view.getTag(); } holder.tv.setText(list.get(i).getTitle()); ImageLoader.getInstance().displayImage("http:" + list.get(i).getImage_url(), holder.img); break; case 1: ViewHolder1 holder1; if (view == null) { holder1 = new ViewHolder1(); view = View.inflate(MainActivity.this, R.layout.layout2, null); holder1.img = view.findViewById(R.id.img); view.setTag(holder1); } else { holder1 = (ViewHolder1) view.getTag(); } DisplayImageOptions build = new DisplayImageOptions.Builder() .showImageOnLoading(R.mipmap.ic_launcher) //设置图片在下载期间显示的图片 .showImageForEmptyUri(R.mipmap.ic_launcher)//设置图片Uri为空或是错误的时候显示的图片 .showImageOnFail(R.mipmap.ic_launcher) //设置图片加载/解码过程中错误时候显示的图片 .cacheInMemory(true)//设置下载的图片是否缓存在内存中 .cacheOnDisc(true)//设置下载的图片是否缓存在SD卡中 .considerExifParams(true) //是否考虑JPEG图像EXIF参数(旋转,翻转) .imageScaleType(ImageScaleType.EXACTLY_STRETCHED)//设置图片以如何的编码方式显示 .bitmapConfig(Bitmap.Config.RGB_565)//设置图片的解码类型// // .decodingOptions(android.graphics.BitmapFactory.Options decodingOptions)//设置图片的解码配置 //.delayBeforeLoading(int delayInMillis)//int delayInMillis为你设置的下载前的延迟时间 //设置图片加入缓存前,对bitmap进行设置 //.preProcessor(BitmapProcessor preProcessor) .resetViewBeforeLoading(true)//设置图片在下载前是否重置,复位 .displayer(new RoundedBitmapDisplayer(100))//是否设置为圆角,弧度为多少 .build(); ImageLoader.getInstance().displayImage("http:" + list.get(i).getImage_url(), holder1.img,build); break; case 2: ViewHolder2 holder2; if (view == null) { holder2 = new ViewHolder2(); view = View.inflate(MainActivity.this, R.layout.layout3, null); holder2.tv = view.findViewById(R.id.tv); view.setTag(holder2); } else { holder2 = (ViewHolder2) view.getTag(); } holder2.tv.setText(list.get(i).getTitle()); break; } return view; } } class ViewHolder { ImageView img; TextView tv; } class ViewHolder1 { ImageView img; } class ViewHolder2 { TextView tv; }}
<resources> <string name="app_name">Gaoxiangxue</string> <string name="xlistview_header_hint_normal">下拉刷新</string> <string name="xlistview_header_hint_ready">松开刷新数据</string> <string name="xlistview_header_hint_loading">正在加载...</string> <string name="xlistview_header_last_time">上次更新时间:</string> <string name="xlistview_footer_hint_normal">查看更多</string> <string name="xlistview_footer_hint_ready">松开载入更多</string> <string-array name="goodsType"> <item>新闻</item> <item>关注</item> <item>动态</item> <item>设置</item> </string-array></resources>
阅读全文
0 0
- xlistview刷新加载+Drawlayout+多条目
- 多条目加载+XlistView刷新加载更多
- xlistview多条目加载
- XlistView多条目加载
- 下拉刷新上拉加载,XListView多条目加载,TabPageIndicator
- XListView多条目加载+TabPageIndicator+下拉刷新上拉加载
- LIstView多条目展示+XListView下拉刷新,上拉加载
- Listview多条目加载和XListview下拉刷新控件
- XListView多条目加载adpter
- XlistView的多条目加载
- XListView下拉刷新,上拉加载和ListView多条目加载
- Xlistview上拉加载,下拉刷新、多条目展示以及获取系统时间
- XListView之多条目加载
- drawlayout点击请求不同数据并XListView刷新
- Xlistview多条目展示
- xlistview 多条目展示
- ImageLoader,GET,POST获取数据,多条目加载,XListView
- RadioButton+Fragment和XlistView及多条目加载
- 程序员这样面试,拿到offer的几率是80%
- 程序员,这样面试,你的成功率能达到 90%!
- python文件转为exe文件
- 动画设置
- C#数据类型转换——数值字符串和数值之间的转换
- xlistview刷新加载+Drawlayout+多条目
- Codeforces 898D Alarm Clock (贪心好题)
- 把所有文本文件合成一个文件
- p62 练习3.3 通过只调整指针(而不是数据)来交换两个相邻的元素,使用:
- MVP二级购物车
- 数据库连接池Druid使用总结
- 搭建分布式集群
- Vue+MySQL+Express
- DTD