Android BaseAdapter记录
来源:互联网 发布:mac安装win7双系统 编辑:程序博客网 时间:2024/06/05 15:40
第一次用到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; } }); }
目前先做这样简单的记录,等待项目结束,再仔细研究具体的加载过程。
阅读全文
0 0
- Android BaseAdapter记录
- Android学习记录-关于BaseAdapter和实体类
- Android学习记录-关于BaseAdapter和实体类
- Android学习记录之BaseAdapter及其SubClass基础使用1
- Android --- BaseAdapter
- Android BaseAdapter
- android BaseAdapter
- Android BaseAdapter
- Android BaseAdapter
- Android BaseAdapter
- Android BaseAdapter
- Android BaseAdapter 例子
- Android BaseAdapter应用
- Android ListView理解,BaseAdapter
- 关于Android中的BaseAdapter
- android自定义 BaseAdapter
- Android ListView理解,BaseAdapter
- Android中的BaseAdapter使用说明
- 三值排序(计蒜客)
- Android studio安装的问题
- VS2005、VS2008为类添加成员时显示 “length”为空或不是对象的处理方法
- Android Studio在创建项目是一直处于building “project name”gradle project info 解决方案
- Maven 打包时加入本地依赖包
- Android BaseAdapter记录
- lucence in action读后感
- 分布式数据库中的CAP原理 CAP+BASE
- 如何使用gitee作为免费图床
- Unity3d通过PhotonServer访问MySQL数据库
- spring boot 通过Eureka搭建微服务
- Python+NLTK自然语言处理学习(一):环境搭建
- 卫星影像处理中间件开发报告
- spring注解形式设置定时器