多种类布局的适配器及优化

来源:互联网 发布:mac用什么炒股软件 编辑:程序博客网 时间:2024/06/14 14:07
class MyAdapter extends BaseAdapter {    private final int TYPE0 = 0;    private final int TYPE1 = 1;    //长度    @Override    public int getCount() {        return datalist.size();    }    //布局    @Override    public Object getItem(int i) {        return datalist.get(i);    }    //下标    @Override    public long getItemId(int i) {        return i;    }    //多少种布局    @Override    public int getViewTypeCount() {        return 2;    }    //下标对应的布局    @Override    public int getItemViewType(int position) {        boolean b = datalist.get(position).getIMAGEURL() != null;        if (b) {            return 0;        } else {            return 1;        }    }    //设置布局并且优化    @Override    public View getView(int i, View view, ViewGroup viewGroup) {        //获取不同布局的返回值        int type = getItemViewType(i);        ViewHolder0 holder0;        ViewHolder1 holder1;        //判断选择        switch (type) {            case TYPE0:                //判断是否为空                if (view == null) {                    //获取布局                    view = View.inflate(MainActivity.this, R.layout.item0, null);                    holder0 = new ViewHolder0();                    //初始化组件                    holder0.tv0 = view.findViewById(R.id.tv_content);                    holder0.tv1 = view.findViewById(R.id.tv_time);                    //关联                    view.setTag(holder0);                } else {                    holder0 = (ViewHolder0) view.getTag();                }                //赋值                holder0.tv0.setText(datalist.get(i).getTITLE());                holder0.tv1.setText(datalist.get(i).getSHOWTIME());                break;            case TYPE1:                if (view == null) {                    //获取布局                    view = View.inflate(MainActivity.this, R.layout.item, null);                    holder1 = new ViewHolder1();                    //初始化组件                    holder1.tv0 = view.findViewById(R.id.tv_content);                    holder1.tv1 = view.findViewById(R.id.tv_time);                    holder1.iv = view.findViewById(R.id.iv);                    //关联                    view.setTag(holder1);                } else {                    holder1 = (ViewHolder1) view.getTag();                }                //赋值                holder1.tv0.setText(datalist.get(i).getTITLE());                holder1.tv1.setText(datalist.get(i).getSHOWTIME());                //设置图片                instance.displayImage((String) datalist.get(i).getIMAGEURL(), holder1.iv,options);                break;        }        return view;    }}
布局:
0:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:gravity="center_vertical"    android:orientation="horizontal"    android:padding="10dp">    <ImageView        android:id="@+id/iv"        android:layout_width="150dp"        android:layout_height="100dp"        android:src="@mipmap/ic_launcher" />    <LinearLayout        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:orientation="vertical"        android:padding="10dp">        <TextView            android:id="@+id/tv_content"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="ASDASDAS"            android:textSize="24sp" />        <TextView            android:id="@+id/tv_time"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginTop="10dp"            android:text="ASDASDAS"            android:textSize="16sp" />    </LinearLayout></LinearLayout>
1:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:gravity="center_vertical"    android:orientation="vertical"    android:padding="10dp">    <TextView        android:id="@+id/tv_content"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="ASDASDAS"        android:textSize="24sp" />    <TextView        android:id="@+id/tv_time"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginTop="10dp"        android:text="ASDASDAS"        android:textSize="16sp" /></LinearLayout>
原创粉丝点击