ListView多条目展示
来源:互联网 发布:台达plc编程实例47 编辑:程序博客网 时间:2024/06/06 09:18
多条目展示主要实现的是这两个方法
getViewTypeCount();//获取布局的数量
getItemViewType(int position) ;//判断加载那个布局
activity_main布局
<ListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="wrap_content"></ListView>
listv1布局
<TextView android:id="@+id/imagev1" android:layout_width="30dp" android:layout_height="30dp" /> <ImageView android:id="@+id/imagev2" android:layout_width="30dp" android:layout_height="30dp" />
listv2布局
<ImageView android:id="@+id/imagev3" android:layout_width="30dp" android:layout_height="30dp" android:background="@mipmap/ic_launcher" /> <ImageView android:id="@+id/imagev4" android:layout_width="30dp" android:layout_height="30dp" android:background="@mipmap/ic_launcher"/> <ImageView android:id="@+id/imagev5" android:layout_width="30dp" android:layout_height="30dp" android:background="@mipmap/ic_launcher"/> <ImageView android:id="@+id/imagev6" android:layout_width="30dp" android:layout_height="30dp" android:background="@mipmap/ic_launcher"/>
list3布局
<ImageView android:id="@+id/image1" android:layout_width="30dp" android:layout_height="30dp" /> <ImageView android:id="@+id/image2" android:layout_width="30dp" android:layout_height="30dp" /> <ImageView android:id="@+id/image3" android:layout_width="30dp" android:layout_height="30dp" />
Dta类
public class Dta { private int id; private int photo; public int getPhoto() { return photo; } public void setPhoto(int photo) { this.photo = photo; } public int getId() { return id; } public void setId(int id) { this.id = id; }}
public class MainActivity extends AppCompatActivity { ListView listView; public List<Dta> list = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView) findViewById(R.id.listview); //第一个对象 Dta dta = new Dta(); dta.setPhoto(R.drawable.a); dta.setId(0); list.add(dta); //第二个对象 Dta dt = new Dta(); dt.setPhoto(R.drawable.b); dt.setPhoto(R.drawable.c); dt.setPhoto(R.drawable.e); dt.setPhoto(R.drawable.h); dt.setId(1); list.add(dt); //第三个对象 Dta dat = new Dta(); dat.setId(2); dat.setPhoto(R.drawable.f); dat.setPhoto(R.drawable.g); dat.setPhoto(R.drawable.h); list.add(dat); //适配器实例化 Myadapter myadapter = new Myadapter(); //listview进行适配 listView.setAdapter(myadapter); } class Myadapter extends BaseAdapter { //代表着布局 final int TYPE_1 = 0; final int TYPE_2 = 1; 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 View getView(int i, View view, ViewGroup viewGroup) { ViewHolder holder; //getItemViewType(int position)传回的值 int type = getItemViewType(i); Log.e("=============", "getView: " + type); if (view == null) { holder = new ViewHolder(); switch (type) { case TYPE_1://第一个布局 view = View.inflate(MainActivity.this, R.layout.listv1, null); holder.t = view.findViewById(R.id.imagev1); holder.imagev2 = view.findViewById(R.id.imagev2); break; case TYPE_2://第二个布局 view = View.inflate(MainActivity.this, R.layout.listv2, null); holder.imagev3 = view.findViewById(R.id.imagev3); holder.imagev4 = view.findViewById(R.id.imagev4); holder.imagev5 = view.findViewById(R.id.imagev5); holder.imagev6 = view.findViewById(R.id.imagev6); break; case TYPE_3://第三个布局 view = View.inflate(MainActivity.this, R.layout.listv3, null); holder.image1 = view.findViewById(R.id.image1); holder.image2 = view.findViewById(R.id.image2); holder.image3 = view.findViewById(R.id.image3); break; } view.setTag(holder); } else { holder = (ViewHolder) view.getTag(); } switch (type) { case TYPE_1: holder.t.setText(list.get(i).toString()); holder.imagev2.setImageResource(list.get(i).getPhoto()); break; case TYPE_2: holder.imagev3.setImageResource(R.drawable.a); holder.imagev4.setImageResource(R.drawable.b); holder.imagev5.setImageResource(R.drawable.c); holder.imagev6.setImageResource(R.drawable.f); break; case TYPE_3: holder.image1.setImageResource(list.get(i).getPhoto()); holder.image2.setImageResource(list.get(i).getPhoto()); holder.image3.setImageResource(list.get(i).getPhoto()); break; } return view; } //布局的总个数 @Override public int getViewTypeCount() { return 3; } //判断id选择相应的布局 @Override public int getItemViewType(int position) { int type = list.get(position).getId(); Log.e("-----------", "getItemViewType: " + type); if (type == 0) return TYPE_1; else if (type == 1) return TYPE_2; else if (type == 2) return TYPE_3; else return TYPE_1; } class ViewHolder { TextView t; ImageView imagev2, imagev3, imagev4, imagev5, imagev6, image1, image2, image3; } }}
阅读全文
1 0
- ListView多条目展示
- ListView多条目展示
- listview多条目展示
- listView 多条目展示
- ListView多条目展示
- listview多条目展示
- ListView多条目展示
- Listview(多条目展示)
- listview多条目展示
- ListView 多条目展示
- listview(多条目展示)
- ListView多条目展示
- ListView 多条目展示
- ListView多条目展示
- ListView的多条目展示
- listview的多条目展示
- ListView多条目的展示
- Listview 多条目展示_AsyncTask
- c++ socket发送http请求
- 编程填空:第i位取反
- Jlink ob制作教程 三线Jlink ob神器!!!
- Vim跨文件复制
- 备份putty配置的方法
- ListView多条目展示
- Yii2.0 SESSION使用方法
- Spring ThreadPoolTaskExecutor队列满的异常处理
- software install
- 精度计算——NSDecimalNumber的使用和封装!
- easyui-edatagrid.js实现回车键结束编辑功能
- 英语考试 (最小生成树)
- Discuz!应用中心开发者后台在移动线路下无法打开的解决办法
- edatagrid扩展,仿kettle形式的表格实现