• android之ListView与Adapter(结合JavaBean)


    ListView

    <ListView
      android:id="@+id/lv"
      android:layout_width="match_parent"
      android:layout_height="match_parent" />

    item_list.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent" 
        android:layout_height="match_parent">
    
        <TextView
            android:id="@+id/item"
            android:layout_width="match_parent"
            android:layout_height="45dp"
            android:gravity="center_vertical"
            tools:text="2015年10月22日 周四" />
    
    </LinearLayout>

    适配器MyAdapter继承基类MyBaseAdapter(WeekBean查看android日期工具类)

    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.TextView;
    import com.xh.boke.R;
    import com.xh.boke.base.BaseActivity;
    import com.xh.boke.base.MyBaseAdapter;
    import com.xh.boke.bean.WeekBean;
    import com.xh.boke.holder.ViewHolder;
    import java.util.List;
    
    /**
     * 测试Adapter
     * Created by Administrator on 2015/10/22 0022.
     */
    public class MyAdapter extends MyBaseAdapter<WeekBean> {
        private TextView tv;
    
        public MyAdapter(BaseActivity context, List<WeekBean> list) { super(context, list); }
    
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            if (convertView == null) convertView = LayoutInflater.from(mContext).inflate(R.layout.item_list, null);
            try {
                tv = ViewHolder.get(convertView, R.id.item);
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
            WeekBean bean = datas.get(position);
            tv.setText(bean.year+"年"+bean.month+"月"+bean.day+"日"+"	"+bean.weeks);
            return convertView;
        }
    }

    功能优化之ViewHolder类

    /**
     * view临时存储器
     * Created by Administrator on 2015/10/22 0022.
     */
    import android.util.SparseArray;
    import android.view.View;
    
    public class ViewHolder {
        /**
         * 获取参数convertView中的指定id资源
         * @param convertView 实例化之后的convertView,不为空指针
         * @param id 指定id资源
         * @return 在convertView中的与id对应的view
         * @throws IllegalAccessException 当convertView为空时,抛出
         */
        @SuppressWarnings("unchecked")
        public static <T extends View> T get(View convertView, int id) throws IllegalAccessException {
            if(convertView == null)
                throw new IllegalAccessException("convertView can not be null");
    
            SparseArray<View> viewHolder = (SparseArray<View>) convertView.getTag();
            if (viewHolder == null) {
                viewHolder = new SparseArray<View>();
                convertView.setTag(viewHolder);
            }
            View childView = viewHolder.get(id);
            if (childView == null) {
                childView = convertView.findViewById(id);
                viewHolder.put(id, childView);
            }
            return (T) childView;
        }
    }

    在activity中使用

    ListView lv = (ListView) findViewById(R.id.lv);
    List<WeekBean> list = getWeekDate();//查看android日期工具类
    MyAdapter adapter = new MyAdapter(this,list);
    lv.setAdapter(adapter);
  • 相关阅读:
    【赛前集训】20190902
    【2019csp模拟】树上相交路径
    如何给网站添加SSL证书(西部数码)?
    如何将页面blob类型的视频链接下载下来?
    VUE笔记:运行Vue报错error in ./*xxxxx&lang=scss Syntax Error: TypeError: this.getOptions is not a function
    VUE笔记:Failed to resolve loader: sass-loader
    VUE笔记:VScode(英文版)快速生成VUE模板的设置
    VUE笔记:运行VUE报错 Node Sass version 6.0.1 is incompatible with ^4.0.0.
    VUE笔记:yarn add sass-loader node-sass -dev
    Excel多条件求和:SUM和SUMIFS的综合使用
  • 原文地址:https://www.cnblogs.com/kangweifeng/p/4901566.html
Copyright © 2020-2023  润新知