ListView多条目加载

来源:互联网 发布:上海九院 双眼皮 知乎 编辑:程序博客网 时间:2024/05/05 17:11
public class MainActivity extends AppCompatActivity {    private ListView listview;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        listview = (ListView) findViewById(R.id.listview);        listview.setAdapter(new MyAdapter());    }//    虚拟数据测试,具体数据到网络请求    class MyAdapter extends BaseAdapter {        @Override        public int getCount() {            return 20;        }        @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;//            得到布局的类型            int type = getItemViewType(position);            switch (type) {                case 0:                    if (holder1 == null) {                        convertView = View.inflate(MainActivity.this, R.layout.item01, null);                        holder1 = new ViewHolder1();                        holder1.img = (ImageView) convertView.findViewById(R.id.img);                        holder1.tv = (TextView) convertView.findViewById(R.id.textview);                        convertView.setTag(holder1);                    } else {                        holder1 = (ViewHolder1) convertView.getTag();                    }                    break;                case 1:                    if (holder2 == null) {                        convertView = View.inflate(MainActivity.this, R.layout.item02, null);                        holder2 = new ViewHolder2();                        holder2.img = (ImageView) convertView.findViewById(R.id.img);                        holder2.tv = (TextView) convertView.findViewById(R.id.textview);                        convertView.setTag(holder2);                    } else {                        holder2 = (ViewHolder2) convertView.getTag();                    }                    break;            }            switch (type) {                case 0:                    holder1.tv.setText("是地方萨芬的方式");                    break;                case 1:                    holder2.tv.setText("对方会收到回复多喝点水");                    break;            }            return convertView;        }        //        得到每一个Item的类型        @Override        public int getItemViewType(int position) {            if (position % 2 == 0)                return 0;//左边是图片,右边是文字            else                return 1;//左边是文字,右边是图片        }        //这是如果返回的总数的2,下标就是0和1,不能大于2        // 设置Item类型的总数        @Override        public int getViewTypeCount() {            return 2;        }    }    class ViewHolder1 {        ImageView img;        TextView tv;    }    class ViewHolder2 {        ImageView img;        TextView tv;    }}
原创粉丝点击