// 首先要给banner添加依赖 compile 'com.youth.banner:banner:1.4.9' //主页面public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener{ private XListView listview; private MyAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listview = (XListView) findViewById(R.id.listview); listview.setXListViewListener(this); listview.setPullRefreshEnable(true); listview.setPullLoadEnable(true); adapter = new MyAdapter(MainActivity.this); listview.setAdapter(adapter); getData(true); } private void getData(final boolean isadd){ RequestBean bean = new RequestBean("http://ic.snssdk.com/2/article/v25/stream/?category=news_finance&count=20&min_behot_time=1455522899&bd_city=北京市&bd_latitude=40.049317&bd_longitude=116.296499&bd_loc_time=1455523440&loc_mode=5&lac=4527&cid=28883&iid=3642583580&device_id=11131669133&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=SCH-I919U&os_api=19&os_version=4.4.2&uuid=285592931621751&openudid=AC9E172CE2490000"); new HttpUtils().getDataFromServer(MainActivity.this, bean, new HttpUtils.DataCallBack() { @Override public void prosseData(String json) { Gson gson=new Gson(); Bean bean1 = gson.fromJson(json, Bean.class); List<Bean.DataBean> list = bean1.getData(); if (isadd){ adapter.addData(list); }else { adapter.updateData(list); } } }); } @Override public void onRefresh() { getData(false); listview.stopLoadMore(); listview.stopRefresh(); } @Override public void onLoadMore() { getData(true); listview.stopLoadMore(); listview.stopRefresh(); } }
//MyAdapter类public class MyAdapter extends BaseAdapter { Context context; List<Bean.DataBean> list=new ArrayList<>(); private final ImageLoader loader; private final DisplayImageOptions options; private final int Banner_type=0, text_type=1; private ViewHolder2 holder2; private ViewHolder1 holder1; public MyAdapter(Context context) { this.context = context; ImageLoaderConfiguration configuration=ImageLoaderConfiguration.createDefault(context); loader = ImageLoader.getInstance(); loader.init(configuration); options = new DisplayImageOptions.Builder() .cacheInMemory(true) .cacheOnDisk(true) .build(); } public void addData(List<Bean.DataBean> list){ this.list.addAll(list); notifyDataSetChanged(); } public void updateData(List<Bean.DataBean> list){ this.list.clear(); addData(list); } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public int getItemViewType(int position) { if (position==0){ return Banner_type; } return text_type; } @Override public int getViewTypeCount() { return 2; } @Override public View getView(int position, View convertView, ViewGroup parent) { int type = getItemViewType(position); if (convertView==null) switch (type) { case 0: convertView = View.inflate(context, R.layout.item, null); holder1 = new ViewHolder1(); holder1.banner = (Banner) convertView.findViewById(R.id.banner); convertView.setTag(holder1); break; case 1: convertView = View.inflate(context, R.layout.item_text, null); holder2 = new ViewHolder2(); holder2.title = (TextView) convertView.findViewById(R.id.tv_title); holder2.img = (ImageView) convertView.findViewById(R.id.img); convertView.setTag(holder2); break; default: break; } else { switch (type){ case 0: holder1= (ViewHolder1) convertView.getTag(); break; case 1: holder2= (ViewHolder2) convertView.getTag(); break; default: break; } } switch (type){ case 0: holder1.banner.setImageLoader(new com.youth.banner.loader.ImageLoader() { @Override public void displayImage(Context context, Object path, ImageView imageView) { loader.displayImage(((Bean.DataBean)path).getMiddle_image().getUrl(),imageView,options); } }); holder1.banner.setImages(list.subList(0,5)); holder1.banner.start(); break; case 1: holder2.title.setText(list.get(position).getTitle()); loader.displayImage(list.get(position).getMiddle_image().getUrl(),holder2.img,options); break; default: break; } return convertView; } class ViewHolder1{ Banner banner; } class ViewHolder2{ TextView title; ImageView img; } }
//item的布局文件<com.youth.banner.Banner android:layout_width="match_parent" android:layout_height="200dp" android:id="@+id/banner"></com.youth.banner.Banner>//item_text的布局文件<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="0dp" android:layout_weight="2" android:layout_height="100dp" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="20sp" android:padding="10dp" android:id="@+id/tv_title"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="手机人民网 评论1.3万"/> </LinearLayout> <ImageView android:id="@+id/img" android:layout_width="0dp" android:layout_height="100dp" android:layout_weight="1" android:src="@mipmap/ic_launcher"/> </LinearLayout>
多条目展示,banner和一些条目
最新推荐文章于 2019-07-31 10:40:54 发布