listview的多条目样式适配
2016-07-28 19:41
399 查看
这里是一个listview多条目展示的简单Dome,其中主要展示了listview适配器中的代码
list_item_one布局
list_item_two布局
[java] view plain copy print? package com.example.monthtext; import java.util.List; import com.example.monthtext.Info.NewsList; import com.lidroid.xutils.BitmapUtils; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import android.content.Context; import android.content.Intent; import android.sax.StartElementListener; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; public class MyBaseAdapter extends BaseAdapter { private Context context; private List<NewsList> list; private static final int TYPE_LISTVIEW_NORMAL = 0; private static final int TYPE_LISTVIEW_THREE = 1; private ViewHolder viewHolder; private BitmapUtils bitmap; private DisplayImageOptions initOptions; public MyBaseAdapter(Context context, List<NewsList> list) { super(); this.context = context; this.list = list; initOptions = ImageLoaderUtils.initOptions(); } @Override public int getCount() { // TODO Auto-generated method stub return list.size(); } @Override public Object getItem(int arg0) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int arg0) { // TODO Auto-generated method stub return 0; } @Override public int getViewTypeCount() { // TODO Auto-generated method stub return 2; } @Override public int getItemViewType(int position) { if(list.get(position).thumbnails_qqnews.size()==1){ return TYPE_LISTVIEW_NORMAL; }if(list.get(position).thumbnails_qqnews.size()!=1){ return TYPE_LISTVIEW_THREE; } return TYPE_LISTVIEW_NORMAL; } @Override public View getView(final int arg0, View convertView, ViewGroup arg2) { bitmap = new BitmapUtils(context); int itemViewType = getItemViewType(arg0); if(convertView==null){ viewHolder = new ViewHolder(); switch (itemViewType) { case TYPE_LISTVIEW_NORMAL: convertView= View.inflate(context, R.layout.list_item_one, null); viewHolder.lv1_img = (ImageView) convertView.findViewById(R.id.lv1_img); viewHolder.lv1_text1 = (TextView) convertView.findViewById(R.id.lv1_text1); viewHolder.lv1_text2 = (TextView) convertView.findViewById(R.id.lv1_text2); convertView.setTag(viewHolder); break; case TYPE_LISTVIEW_THREE: convertView= View.inflate(context, R.layout.list_item_two, null); viewHolder.lv2_text = (TextView) convertView.findViewById(R.id.lv2_text); viewHolder.lv2_img1 = (ImageView) convertView.findViewById(R.id.lv2_img1); viewHolder.lv2_img2 = (ImageView) convertView.findViewById(R.id.lv2_img2); viewHolder.lv2_img3 = (ImageView) convertView.findViewById(R.id.lv2_img3); convertView.setTag(viewHolder); break; default: break; } }else{ viewHolder = (ViewHolder) convertView.getTag(); switch (itemViewType) { case TYPE_LISTVIEW_NORMAL: ImageLoader.getInstance().displayImage( list.get(arg0).thumbnails_qqnews.get(0), viewHolder.lv1_img, initOptions); viewHolder.lv1_text1.setText(list.get(arg0).title); viewHolder.lv1_text2.setText(list.get(arg0).longtitle); break; case TYPE_LISTVIEW_THREE: ImageLoader.getInstance().displayImage( list.get(arg0).thumbnails_qqnews.get(2), viewHolder.lv2_img3, initOptions); ImageLoader.getInstance().displayImage( list.get(arg0).thumbnails_qqnews.get(1), viewHolder.lv2_img2, initOptions); ImageLoader.getInstance().displayImage( list.get(arg0).thumbnails_qqnews.get(0), viewHolder.lv2_img1, initOptions); viewHolder.lv2_text.setText(list.get(arg0).title); break; default: break; } } convertView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent=new Intent(context, WebActivity.class); intent.putExtra("url",list.get(arg0).short_url); context.startActivity(intent); } }); return convertView; } class ViewHolder{ TextView lv1_text1 ,lv1_text2,lv2_text; ImageView lv1_img,lv2_img1,lv2_img2,lv2_img3; } }
list_item_one布局
[java] view plain copy print? <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <ImageView android:layout_width="100dp" android:layout_height="100dp" android:id="@+id/lv1_img"/> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:textSize="18sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/lv1_text1"/> <TextView android:layout_marginTop="18dp" android:textSize="14sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/lv1_text2"/> </LinearLayout> </LinearLayout>
list_item_two布局
[java] view plain copy print? <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/lv2_text"/> <LinearLayout android:layout_margin="10dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/lv2_img1"/> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/lv2_img2"/> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/lv2_img3"/> </LinearLayout> </LinearLayout>
相关文章推荐
- css关于position属性的用法(绝对定位和相对定位的混淆)
- css系列(7)成品网页
- css知识总结
- css:子元素div 上下左右居中方法总结
- Input输入框中加入小图标
- Gulpfile.js——编译、压缩、合并js和css文件
- css3中的zoom元素属性值测试
- css3中的zoom元素属性值测试
- 块级元素、行内元素、空元素
- html表格样式
- CSS Border属性solid(实线)使用介绍
- CSS box-flex属性,然后弹性盒子模型简介
- 巧用cssText属性批量操作样式
- CSS学习笔记--基础(二)
- CSS学习笔记:inline和inline-block的区别
- checkbox样式自定义
- HTML篇之CSS样式——CSS水平垂直居中对齐(多种方式)
- css sprites
- 今天发现了css中的一个顺序问题
- HTML学习05-HTML样式(CSS)