您的位置:首页 > 移动开发 > Android开发

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) {

//      }
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 注释 adapter