多条目加载
来源:互联网 发布:剑三喵萝脸型数据 编辑:程序博客网 时间:2024/06/01 09:29
public class MainActivity extends AppCompatActivity {
String [] texts ={"习大大","特郎谱","普京","小安","三胖"};
//图片资源
int[] images ={R.mipmap.jx_left_listitem_1,R.mipmap.jx_left_listitem_2,R.mipmap.jx_left_listitem_3,
R.mipmap.jx_left_listitem_4,
R.mipmap.jx_left_listitem_5};
private List<Data> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initData();
ListView lv = (ListView) findViewById(R.id.lv);
lv.setAdapter(new MyAdapter());
}
/**
* 初使化数据
*/
private void initData() {
list = new ArrayList<>();
int index1 =0;
int index2 =0;
int index3 =0;
for (int x=0;x<10;x++) {
Data data = new Data();
if (x%3==0){
//我认为是textView
data.setText(texts[index1%texts.length]);
data.setType(0);
//为了防止脚标越界,还有索引有须续的增加
index1 = (index1+1)%texts.length;
}else if (x%2==0){
//是一个textView和一个imageView
data.setText(texts[index2]);
data.setImages(images[index2]);
data.setType(1);
index2 = (index2+1)%texts.length;
}else{
//上面一个textView和下面一个imageView
data.setText(texts[index3]);
data.setImages(images[index3]);
data.setType(2);
index3 = (index3+1)%texts.length;
}
//data.setText(texts[x]);
list.add(data);
}
}
class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
return list.size();
}
/**
* 每个item的类型是什么
* @param position
* @return
*/
@Override
public int getItemViewType(int position) {
return list.get(position).getType();
}
/**
* item的类型的个数
* @return
*/
@Override
public int getViewTypeCount() {
return 3;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder1 holder1 = null;
ViewHolder2 holder2 = null;
ViewHolder3 holder3 = null;
//得到不同item的类型
int type = getItemViewType(position);
if(convertView==null){
switch (type){
case 0:
holder1 = new ViewHolder1();
convertView = View.inflate(MainActivity.this, R.layout.lv_itme1,null);
holder1.tv1 = (TextView) convertView.findViewById(R.id.lv_tv1);
convertView.setTag(holder1);
break;
case 1:
holder2 = new ViewHolder2();
convertView = View.inflate(MainActivity.this, R.layout.lv_itme2,null);
holder2.tv2 = (TextView) convertView.findViewById(R.id.lv_tv2);
holder2.iv2 = (ImageView) convertView.findViewById(R.id.lv_iv2);
convertView.setTag(holder2);
break;
case 2:
holder3 = new ViewHolder3();
convertView = View.inflate(MainActivity.this, R.layout.lv_itme3,null);
holder3.tv3 = (TextView) convertView.findViewById(R.id.lv_tv3);
holder3.iv3 = (ImageView) convertView.findViewById(R.id.lv_iv3);
convertView.setTag(holder3);
break;
}
}else{
//不为空,取出
switch (type){
case 0:
holder1 = (ViewHolder1) convertView.getTag();
break;
case 1:
holder2 = (ViewHolder2) convertView.getTag();
break;
case 2:
holder3 = (ViewHolder3) convertView.getTag();
break;
}
}
switch (type){
case 0:
holder1.tv1.setText(list.get(position).getText());
break;
case 1:
holder2.tv2.setText(list.get(position).getText());
holder2.iv2.setImageResource(list.get(position).getImages());
break;
case 2:
holder3.tv3.setText(list.get(position).getText());
holder3.iv3.setImageResource(list.get(position).getImages());
break;
}
return convertView;
}
class ViewHolder1{
TextView tv1;
}
class ViewHolder2{
TextView tv2;
ImageView iv2;
}
class ViewHolder3{
TextView tv3;
ImageView iv3;
}
}
}
阅读全文
0 0
- ListView多条目加载
- ListView 多条目加载
- listview多条目加载
- ListView多条目加载
- listview多条目加载
- 多条目加载
- ListView多条目加载
- ListView多条目加载
- ListView多条目加载
- xlistview多条目加载
- android多条目加载
- ListView多条目加载
- listview多条目加载
- 多条目加载
- Listview多条目加载
- ListView多条目加载
- 多条目加载
- 多条目加载
- 关于linux3.14.38 MAC地址设置问题
- typedef struct和struct的区别
- CSS3 Generator在线工具
- 二叉树打印节点和为某值的全部路径
- 基于django封装的常用装饰器和函数
- 多条目加载
- MFC1-纯手写一个程序
- hdu-6154
- hdu 6152 Friend-Graph
- ADB server didn't ACK 解决方法
- JavaScript每过一段时间执行一个函数
- React初识
- Hbase学习总结一 环境部署
- Python批量修改文件名