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;
   }
}