adapter一般格式

在移动端的开发过程中,数据解析是比较常见的一块内容,特别是列表,习惯写个adapter,把数据扔到里面,从以前的项目中抽取了一个adapter的最简单的格式,希望对大家有所帮助。

直接上代码:


/**
 * 功能:Adapter的一般格式(从项目中获取百度地图的位置抽取出来的一个例子)
 * @author yinguichun
 * @date 2016-08-22
 *
 */
public class LocationAdapter extends BaseAdapter {

	/** 附近位置集合,从Activity页面传递过来的数据 */
	private List<Address> list = new ArrayList<Address>();
	/** 视图容器 */
	private LayoutInflater inflater;
	/** 缓存子控件 */
	private ViewHolder holder;
	/** 继承上下文 */
	private Context mContext;

	public LocationAdapter(Context context, ArrayList<Address> list) {//此处的list是接受Activity传递的list集合
		// TODO Auto-generated constructor stub
		this.mContext = context;
		this.list = list;
		inflater = LayoutInflater.from(context);
	}

	public class ViewHolder {
		private TextView tv_location;//Adapter布局中的一个TextView
	}

	/**
	 * 获得传递集合的所有列数
	 * @return list集合的长度
	 */
	public int getCount() {
		// TODO Auto-generated method stub
		return list.size();
	}

	/**
	 * 获取list集合的每一个Item
	 * @param position Item的位置
	 * @return 集合的位置
	 */
	public Object getItem(int position) {
		// TODO Auto-generated method stub
		return list.get(position);
	}

	@Override
	public long getItemId(int position) {
		// TODO Auto-generated method stub
		return 0;
	}

	@SuppressLint("ResourceAsColor")
	@Override
	public View getView(final int position, View convertView, ViewGroup parent) {
		// TODO Auto-generated method stub
		holder = new ViewHolder();
		if (convertView == null) {
			convertView = inflater.inflate(R.layout.item_location, null);
			holder.tv_location = (TextView) convertView
					.findViewById(R.id.tv_location);
			convertView.setTag(holder);
		} else {
			holder = (ViewHolder) convertView.getTag();
		}
		holder.tv_location.setText(list.get(position).getAddress());//给TextView设置值
		/**
		 * 每个Item的点击事件
		 */
		holder.tv_location.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Intent intent = new Intent();
				intent.putExtra("address", list.get(position).getAddress());
				intent.setClass(mContext, TravelWritingActivity.class);
				mContext.startActivity(intent);

			}
		});
		return convertView;
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

博主逸尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值