package com.eebbk.callbackdemo;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.util.List;
/**
* Created by Administrator on 2016/10/24.
*/
public class CallBackListAdapter extends BaseAdapter {
private Context context;
private List<String> strings;
/***
* 第三步:申明这个类的对象
*/
private OnItemLayoutClickListener onItemLayoutClickListener;
/***
* 第一步:定义一个回调接口类
*/
public interface OnItemLayoutClickListener {
/***
* 第二步:定义接口实现的方法
*/
void onItemLayoutClick(int position);
}
/***
* 第四步:写一个这个接口类的构造方法,传递实现了这个接口的实例
*/
public void setOnItemLayoutClickListener(OnItemLayoutClickListener onItemLayoutClickListener) {
this.onItemLayoutClickListener = onItemLayoutClickListener;
}
public CallBackListAdapter(Context context, List<String> strings) {
this.context = context;
this.strings = strings;
}
@Override
public int getCount() {
return strings.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder viewHolder;
if (convertView == null) {
viewHolder = new ViewHolder();
convertView = LayoutInflater.from(context).inflate(R.layout.callback_list_item, null);
viewHolder.tv = (TextView) convertView.findViewById(R.id.a_item_tv_name);
viewHolder.ll = (LinearLayout) convertView.findViewById(R.id.ll);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.tv.setText(strings.get(position));
viewHolder.ll.setOnClickListener(new ViewGroup.OnClickListener() {
@Override
public void onClick(View v) {
if (null != onItemLayoutClickListener) {
/***
* 第五步:当列表项被点击时触发回调事件,传递所点击的列表项int位置position
*/
onItemLayoutClickListener.onItemLayoutClick(position);
}
}
});
return convertView;
}
static class ViewHolder {
TextView tv;
LinearLayout ll;
}
}
评论1
最新资源