Android開發-listview實現多條目展示
阿新 • • 發佈:2018-12-13
如果我們的listview做的很好了 那麼多條目對你來說就很簡單了,因為多條目是基於listview的 它們只是在介面卡中有所不同
現在我們來看一下介面卡
public class MyAdapter extends BaseAdapter {
private ArrayList<JsonBean.NewslistBean> list; private Context context; public MyAdapter(ArrayList<JsonBean.NewslistBean> list, Context context) { this.list = list; this.context = context; } @Override public int getItemViewType(int position) { if (position%2==0){ //返回第一種檢視--左邊一張圖片--右邊是標題和內容 return 0; }else{ //返回第二種檢視--上邊是標題 下邊三張圖片 return 1; } } @Override public int getViewTypeCount() { return 2; } @Override public int getCount() { return list.size(); } @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) { int type = getItemViewType( position ); switch (type){ case 0://第一種檢視的情況 Hoilder1 hoilder1; if (convertView == null) { convertView= View.inflate( context, R.layout.list_item, null ); //新建一個Hoilder1 hoilder1 = new Hoilder1(); hoilder1.img1=convertView.findViewById( R.id.img1 ); hoilder1.tv_title1=convertView.findViewById( R.id.tv_title1 ); hoilder1.tv_description1=convertView.findViewById( R.id.tv_description1 ); convertView.setTag( hoilder1 ); }else{ hoilder1= (Hoilder1)convertView.getTag(); } //給控制元件賦值 Glide.with( context ).load( list.get( position ).getPicUrl() ).into( hoilder1.img1 ); hoilder1.tv_title1.setText( list.get( position ).getTitle() ); hoilder1.tv_description1.setText( list.get( position ).getDescription() ); break; case 1://第二種檢視的情況 Hoilder2 hoilder2; if (convertView == null) { convertView= View.inflate( context, R.layout.list_item1, null ); //新建一個Hoilder2 hoilder2 = new Hoilder2(); hoilder2.img2_1=convertView.findViewById( R.id.img2_1 ); hoilder2.img2_2=convertView.findViewById( R.id.img2_2 ); hoilder2.img2_3=convertView.findViewById( R.id.img2_3 ); hoilder2.tv_description2=convertView.findViewById( R.id.tv_description2); convertView.setTag( hoilder2 ); }else{ hoilder2= (Hoilder2)convertView.getTag(); } //給控制元件賦值 Glide.with( context ).load( list.get( position ).getPicUrl() ).into( hoilder2.img2_1); Glide.with( context ).load( list.get( position ).getPicUrl() ).into( hoilder2.img2_2 ); Glide.with( context ).load( list.get( position ).getPicUrl() ).into( hoilder2.img2_3 ); hoilder2.tv_description2.setText( list.get( position ).getDescription() ); break; } return convertView; } //新建一個Hoilder1 class Hoilder1{ ImageView img1; TextView tv_title1; TextView tv_description1; } //新建一個Hoilder2 class Hoilder2{ ImageView img2_1; ImageView img2_2; ImageView img2_3; TextView tv_description2; }
}