adapter详解
2015-07-20 17:08
483 查看
注释很详细额
package com.yitong.menu; import java.util.List; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.yitong.menu.util.DataList; import com.yitong.menu.util.Result; /** * @author Tittle *自定義適配器 */ public class MyAdapter extends BaseAdapter { private Result result;//解析的实体类 private HomeActivity activity;//主体Activity对象 public static List<DataList> i;//用于提取Result实体类的对象 public static List<DataList> name; /** * @param result * @param activity * 用于关联Adapter对象所在的Activity */ public MyAdapter(Result result, HomeActivity activity) { super(); this.result = result; this.activity = activity; } /* (non-Javadoc) * @see android.widget.Adapter#getCount() * gridView刚开始绘制的时候回调用此方法根据此方法返回的长度决定itemView的个数 * */ @Override public int getCount() { // TODO Auto-generated method stub return result.getDataList().size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return position; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } /* (non-Javadoc) * @see android.widget.Adapter#getView(int, android.view.View, android.view.ViewGroup) * 此方法用于手动完成适配之后手动映射数据 * 在绘制每一个itemView时都会调用此方法 * positon :表示显示的哪一行 * convertView :是从布局文件中iflater来的布局,用来显示提定义的item.xml文件 */ /* (non-Javadoc) * @see android.widget.Adapter#getView(int, android.view.View, android.view.ViewGroup) */ @Override public View getView(int position, View convertView, ViewGroup parent) { /** * 显示优化,只要是GridView之前已经读取过的就不用重新读取,直接从缓存中更新 */ ViewHodler hodler=null; if (convertView == null) { /** * convertView 是从布局文件inflater来的布局 * 用layoutInfalter方法将定义好的home_item文件提取成View实例来显示 */ LayoutInflater inflater = activity.getLayoutInflater(); convertView = inflater.inflate(R.layout.home_item, null); /** * 保存着一屏幕的内容,以便下次回到此屏幕是直接refresh,不用重读布局文件 */ hodler=new ViewHodler(); hodler.tv = (TextView) convertView.findViewById(R.id.tv_name); hodler.iv = (ImageView) convertView.findViewById(R.id.iv_icon); convertView.setTag(hodler); } else {//如果之前已经显示过,则直接用hodler刷新屏幕UI hodler = (ViewHodler) convertView.getTag(); } hodler.tv.setText(result.getDataList().get(position).getMENU_NAME()); hodler.iv.setImageResource(R.drawable.img_itemicon_bg); i=result.getDataList(); // .get(position).getIS_NATIVE(); name=result.getDataList(); // .get(position).getMENU_NAME(); /*hodler.iv.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { } });*/ return convertView; } /** * @author Tittle *用于优化 */ public class ViewHodler { public TextView tv; public ImageView iv; // public ViewHodler(View view) { // } } }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories