在Activty中處理adapter中的監聽事件的寫法
阿新 • • 發佈:2019-02-18
public class MainAdapter extends BaseAdapter {
private OnClickListener listener;
private LayoutInflater inflater;
private ArrayList<People> peopleDatas = new ArrayList<People>();
public MainAdapter(Context context, OnClickListener listener) {
this.listener = listener;
this.inflater = LayoutInflater.from(context);
}
public void setData(ArrayList<People> data) {
if (null == data)
return;
peopleDatas.clear();
People people;
int size = data.size();
for (int i = 0; i < size; i++) {
people = data.get(i);
peopleDatas.add(people);
}
notifyDataSetChanged();
}
@Override
public int getCount() {
return peopleDatas.size();
}
@Override
public Object getItem(int arg0) {
return null;
}
@Override
public long getItemId(int arg0) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
viewHolder = new ViewHolder();
convertView = inflater.inflate(R.layout.item_main, null);
viewHolder.tvName = (TextView) convertView.findViewById(R.id.tv_name);
viewHolder.btnClick = (Button) convertView.findViewById(R.id.btn_click);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
if (position < peopleDatas.size()) {
People people = peopleDatas.get(position);
if (null != people) {
viewHolder.btnClick.setTag(R.id.btn_click, position);
viewHolder.btnClick.setOnClickListener(listener);
viewHolder.tvName.setText(people.getName());
}
}
return convertView;
}
class ViewHolder {
TextView tvName;
Button btnClick;
}
}
private OnClickListener listener;
private LayoutInflater inflater;
private ArrayList<People> peopleDatas = new ArrayList<People>();
public MainAdapter(Context context, OnClickListener listener) {
this.listener = listener;
this.inflater = LayoutInflater.from(context);
}
public void setData(ArrayList<People> data) {
if (null == data)
return;
peopleDatas.clear();
People people;
int size = data.size();
for (int i = 0; i < size; i++) {
people = data.get(i);
peopleDatas.add(people);
}
notifyDataSetChanged();
}
@Override
public int getCount() {
return peopleDatas.size();
}
@Override
public Object getItem(int arg0) {
return null;
}
@Override
public long getItemId(int arg0) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
viewHolder = new ViewHolder();
convertView = inflater.inflate(R.layout.item_main, null);
viewHolder.tvName = (TextView) convertView.findViewById(R.id.tv_name);
viewHolder.btnClick = (Button) convertView.findViewById(R.id.btn_click);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
if (position < peopleDatas.size()) {
People people = peopleDatas.get(position);
if (null != people) {
viewHolder.btnClick.setTag(R.id.btn_click, position);
viewHolder.btnClick.setOnClickListener(listener);
viewHolder.tvName.setText(people.getName());
}
}
return convertView;
}
class ViewHolder {
TextView tvName;
Button btnClick;
}
}