Android BaseAdapter记录



第一次用到BaseAdater的场景是产品列表,有标题还有显示的ICON。所以选择用GridView的模式。直接上代码:


private class CardGridViewAdapter extends BaseAdapter {

    @Override
    public int getCount() {
        if (functions != null)
            return functions.size();
        return 0;
    }

    @Override
    public Object getItem(int position) {
        return functions.get(position);
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    int lastPosition = -1;
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        if (convertView == null) {
            convertView = LayoutInflater.from(mContext).inflate(R.layout.ebuy_item_gridview, null);
            holder = new ViewHolder();
            holder.tv = (TextView) convertView.findViewById(R.id.tv_main_title);
            holder.imageView = (SimpleDraweeView) convertView.findViewById(R.id.iv_main_pic);
            convertView.setTag(holder);
        } else
            holder = (ViewHolder) convertView.getTag();

        if(position == 0 && lastPosition == 0){
            return convertView;
        }
        lastPosition = position;
        Function function = functions.get(position);

        Log.e("DataController","function.title:"+function.title);
        Log.e("DataController","function.defaultImage:"+function.getDefaultImage());
        holder.tv.setText(function.title);
        Uri uri = Uri.parse(function.getDefaultImage());
        Log.e("DataController","url:"+uri.toString());
        holder.imageView.setImageURI(uri);
        int wide=UIUtils.getScreenWidth(mContext)/3 -10;
        RelativeLayout.LayoutParams params=new RelativeLayout.LayoutParams(wide,wide);
        convertView.setLayoutParams(params);
        convertView.setBackgroundColor(Color.parseColor("#ffffff"));

        return convertView;
    }
}
private class ViewHolder {
    TextView tv;
    SimpleDraweeView imageView;
}
BaseApdate主体部分是getView方法。
public View getView(int position, View convertView, ViewGroup parent)

这次的使用是将需要显示出来的产品通过ArrayList<>传进来,在BaseApdate上显示url对应的ICON和TITLE,并且响应点击事件。



 private  CardGridViewAdapter adapter ;
    @Override
    public void initData() {

        adapter = new CardGridViewAdapter();
        mGridView.setAdapter(adapter);

        mGridView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if(event.getAction() == 0){
                    gridViewSelect(v,event);
                }else if(event.getAction() == 1 || event.getAction() == 3){
                     gridViewSelectOut();
                }
                return false;
            }
        });
        mGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Log.e("DataController","---------setOnItemClickListener --------------"+position);
                long currentTime=System.currentTimeMillis();
                if(currentTime-lastClickTime<MIN_CLICK_DELAY_TIME){
                    return;
                }
                lastClickTime=currentTime;
               
            }
        });
    }



目前先做这样简单的记录,等待项目结束,再仔细研究具体的加载过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值