banner+xlistview+多条目展示
来源:互联网 发布:易语言安卓远控源码 编辑:程序博客网 时间:2024/05/18 08:48
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener { private String path = "http://huixinguiyu.cn/Assets/js/data.js"; private String s; private List<MyBean.ApkBean> apkList; private Banner myBanner; private List<String> imgList; private XListView myXlist; private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); adapter.notifyDataSetChanged(); onStop(); } }; private XListAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myBanner = (Banner) findViewById(R.id.MyBanner); myXlist = (XListView) findViewById(R.id.MyXList); myXlist.setXListViewListener(MainActivity.this); myXlist.setPullRefreshEnable(true); myXlist.setPullLoadEnable(true); myBanner.setImageLoader(new MyImageLoaderBanner()); //使用线程请求网络数据 new Thread() { public void run() { setData(); } }.start(); } //设置下拉刷新 @Override public void onRefresh() { handler.postDelayed(new Runnable() { @Override public void run() { imgList.add(0,"http://www.microvirt.com/new_market/img/zhuxian_logo.png"); handler.sendEmptyMessage(0); } },2000); } //设置上拉加载 @Override public void onLoadMore() { handler.postDelayed(new Runnable() { @Override public void run() { imgList.add("http://www.microvirt.com/new_market/img/dhxy_icon_new.png"); handler.sendEmptyMessage(0); } },2000); } //设置下拉刷新,上拉加载的回弹方法,此方法中还可以设置刷新回弹的时间 public void onStop(){ myXlist.stopRefresh(); myXlist.stopLoadMore(); } //多条目展示的适配器设置 class XListAdapter extends BaseAdapter { @Override public int getCount() { return apkList.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public int getItemViewType(int position) { if (position % 2 == 1) { return 0; }else { return 1; } } @Override public int getViewTypeCount() { return 2; } @Override public View getView(int position, View convertView, ViewGroup parent) { int type = getItemViewType(position); ViewHolder1 holder1 = null; ViewHolder2 holder2 = null; switch (type){ case 0: if (convertView == null){ holder1 = new ViewHolder1(); convertView = View.inflate(MainActivity.this,R.layout.item1,null); holder1.img1 = (ImageView) convertView.findViewById(R.id.Img1); holder1.text1 = (TextView) convertView.findViewById(R.id.Text1); convertView.setTag(holder1); }else{ holder1 = (ViewHolder1) convertView.getTag(); } holder1.text1.setText(apkList.get(position).name); Glide.with(MainActivity.this).load(apkList.get(position).iconUrl).into(holder1.img1); break; case 1: if (convertView == null){ holder2 = new ViewHolder2(); convertView = View.inflate(MainActivity.this,R.layout.item2,null); holder2.img2 = (ImageView) convertView.findViewById(R.id.Img2); holder2.text2 = (TextView) convertView.findViewById(R.id.Text2); convertView.setTag(holder2); }else{ holder2 = (ViewHolder2) convertView.getTag(); } holder2.text2.setText(apkList.get(position).name); Glide.with(MainActivity.this).load(apkList.get(position).iconUrl).into(holder2.img2); break; } return convertView; } } class ViewHolder1{ ImageView img1; TextView text1; } class ViewHolder2{ ImageView img2; TextView text2; } //得到数据后,将数据中的图片地址放入一个图片集合中,用来设置banner轮播 private void setData() { try { URL url = new URL(path); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(8000); connection.setReadTimeout(8000); int code = connection.getResponseCode(); if (code == 200) { InputStream inputStream = connection.getInputStream(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); int len = 0; byte[] buffer = new byte[1024]; while ((len = inputStream.read(buffer)) != -1) { baos.write(buffer, 0, len); } s = baos.toString(); } Gson gson = new Gson(); MyBean myBean = gson.fromJson(s, MyBean.class); apkList = myBean.apk; System.out.println(apkList.size()); imgList = new ArrayList<>(); for (int i = 0; i < apkList.size(); i++) { imgList.add(apkList.get(i).iconUrl); } runOnUiThread(new Runnable() { @Override public void run() { myBanner.setImages(imgList); myBanner.start(); adapter = new XListAdapter(); myXlist.setAdapter(adapter); } }); System.out.println(imgList.size()); } catch (Exception e) { e.printStackTrace(); } }}
//设置加载图片的工具类
public class MyImageLoaderBanner extends ImageLoader{ @Override public void displayImage(Context context, Object path, ImageView imageView) { Glide.with(context).load(path).into(imageView); }}
阅读全文
1 0
- banner+xlistview+多条目展示
- Xlistview多条目展示
- xlistview 多条目展示
- xlistview的多条目展示
- 多条目展示,banner和一些条目
- 有关XListView的多条目展示
- LIstView多条目展示+XListView下拉刷新,上拉加载
- xlistview多条目加载
- XlistView多条目加载
- handle发送get和post请求网络数据+多条目加载+banner+xlistview+TabLayout
- 侧拉+xlistview+多条目展示+请求数据+tablayout+viewpager+Imageloder
- Xlistview上拉加载,下拉刷新、多条目展示以及获取系统时间
- XListView多条目加载adpter
- XlistView的多条目加载
- Xlistview实现多条目布局
- 封装请求网络数据 显示XListView 加多条目展示
- MVP框架+RXJava+reftorfit请求网络数据+XRecycleView多条目展示(banner轮播+条目展示、刷新加载)、点击事件+fresco图片加载
- ListView多条目展示
- keras中文文档笔记9——关于keras层
- java8 用流收集数据
- UVALive 7147 World Cup 【贪心】
- 《周鸿祎自述》读后小感
- 接口的应用:界面刷新
- banner+xlistview+多条目展示
- hibernate环境搭建与小案例
- 如何在Linux系统下查找可执行文件
- mybatis动态代理剖析
- JSP初步(一)
- 【CSS布局】三栏式布局,左右定宽,中间内容区域自适应
- uva 12169 扩展Gcd
- 算法竞赛入门经典java版程序ch3 UVa272
- 贪心详解