您的位置:首页 > 其它

listview多条目加载的类

2017-07-18 19:36 274 查看
public class MainActivity extends AppCompatActivity {

    private ListView lv;

    private static final int TYPE_0 = 0;

    private static final int TYPE_1 = 1;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        //找控件

        lv = (ListView) findViewById(R.id.lv);

        //设置适配器

        lv.setAdapter(new MyBaseAdapter());

    }

    class MyBaseAdapter 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 int getItemViewType(int position) {

            //得到某个条目的类型   假设 1 : 左边图右边文字  2 左边是文字右边图

            if(position % 2 == 0){//偶数

                return TYPE_0;//0 ,1,2

            }else{

                return TYPE_1;

            }

        }

        @Override

        public int getViewTypeCount() {//指定你要在这个当前这个ListView显示几种类型的条目

            return 2;

        }

        @Override

        public View getView(int position, View convertView, ViewGroup parent) {

            /*TextView textView = new TextView(MainActivity.this);

            textView.setText("点击放大镜放大看"+position);

            textView.setHeight(100);*/

            //得到指定条目的布局类型

            int type = getItemViewType(position);

            ViewHolder holder = null;

            ViewHolder2 holder2 = null;

            switch (type){

                case 1:

                {

                    if(convertView == null) {

                        holder = new ViewHolder();

                        convertView = convertView.inflate(MainActivity.this, R.layout.item1, null);

                        holder.ivIcon = (ImageView) convertView.findViewById(R.id.ivIcon);

                        holder.tvContent = (TextView) convertView.findViewById(R.id.tvContent);

                        convertView.setTag(holder);

                    }else{

                        holder = (ViewHolder) convertView.getTag();

                    }

                }

                    break;

                case 0: {

                    if (convertView == null) {

                        holder2 = new ViewHolder2();

                        convertView = convertView.inflate(MainActivity.this, R.layout.item2, null);

                        holder2.ivIcon = (ImageView) convertView.findViewById(R.id.ivIcon);

                        holder2.tvContent = (TextView) convertView.findViewById(R.id.tvContent);

                        convertView.setTag(holder2);

                    } else {

                        holder2 = (ViewHolder2) convertView.getTag();

                    }

                }

                    break;

            }

        //定义一个switch,填充数据

            switch (type){

                case 0:

                {

                    holder2.tvContent.setText("大家都好都好");

                }

                    break;

                case 1:

                {

                    holder.tvContent.setText("附近的开发基地附近的咖啡机");

                }

                    break;

            }

            return convertView;

        }

        class ViewHolder{

            ImageView ivIcon;

            TextView tvContent;

        }

        class ViewHolder2{

            ImageView ivIcon;

            TextView tvContent;

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息