zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    Max直接输出gif的脚本
    MaxScript获取材质缩略图的方法
    关于Max导出插件的七七八八
    Max2013脚本工具的乱码问题
    MaxScript中获取Skin的骨骼的方式
    C\C++ Dll >C# >MaxScript通过C#调用C++写的Dll
    Unity3d的着色器
    半夜睡不着,爬起来把shaderX里的车漆搬到了unity3d里
    MaxScript保存剪贴板里的图像
    MaxScript通过Ole操作Phtoshop的范例,将几张图按图层合并为psd
  • 原文地址:https://www.cnblogs.com/kangweifeng/p/4901566.html
Copyright © 2011-2022 走看看