ListView多条目加载

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;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值