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; } }
ListView多条目加载
最新推荐文章于 2019-01-03 16:26:42 发布