public class AdptItem extends ArrayAdapter<ChildInfo> {
private ArrayList<ChildInfo> arrayItem;
private Context context;
public interface onButtonClickListener{
void onButtonClick(ChildInfo item);
void onButtonClickDetail(ChildInfo item);
}
private onButtonClickListener adptCallback = null;
public void setOnButteonClickListener(onButtonClickListener callback){
adptCallback = callback;
}
public AdptItem(Context context, int resource, ArrayList<ChildInfo> objects) {
super(context, resource, objects);
this.arrayItem = objects;
this.context = context;
}
public int getCount() {
return arrayItem.size();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater li = (LayoutInflater)context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
//////이부분에서 누가호출했는지 알아내 inflate를 해줄 layout을 정해주고 싶습니다.
v = li.inflate(R.layout.item, null);
}
final ChildInfo item = arrayItem.get(position);
if(item != null){
Button btn = (Button)v.findViewById(R.id.button1);
Button btn_detail = (Button)v.findViewById(R.id.button_detail);
TextView txt = (TextView) v.findViewById(R.id.text_item);
txt.setText(item.name);
btn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
if(adptCallback !=null){
adptCallback.onButtonClick(item);
}
}
});
btn_detail.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(adptCallback !=null){
adptCallback.onButtonClickDetail(item);
}
}
});
}
return v;
}
}