ECode SimpleExpandableListAdapter::GetChildView( /* [in] */ Int32 groupPosition, /* [in] */ Int32 childPosition, /* [in] */ Boolean isLastChild, /* [in] */ IView* convertView, /* [in] */ IViewGroup* parent, /* [out] */ IView** view) { VALIDATE_NOT_NULL(view); AutoPtr<IView> v; if (convertView == NULL) { NewChildView(isLastChild, parent, (IView**)&v); } else { v = convertView; } AutoPtr<IInterface> obj; mChildData->Get(groupPosition, (IInterface**)&obj); AutoPtr<IList> group = IList::Probe(obj); obj = NULL; group->Get(childPosition, (IInterface**)&obj); AutoPtr<IMap> children = IMap::Probe(obj); BindView(v, children, mChildFrom, mChildTo); *view = v; REFCOUNT_ADD(*view); return NOERROR; }
ECode SimpleExpandableListAdapter::GetGroupView( /* [in] */ Int32 groupPosition, /* [in] */ Boolean isExpanded, /* [in] */ IView* convertView, /* [in] */ IViewGroup* parent, /* [out] */ IView** view) { VALIDATE_NOT_NULL(view); AutoPtr<IView> v; if (convertView == NULL) { NewGroupView(isExpanded, parent, (IView**)&v); } else { v = convertView; } AutoPtr<IMap> group; mGroupData->Get(groupPosition, (IInterface**)&group); BindView(v, group, mGroupFrom, mGroupTo); *view = v; REFCOUNT_ADD(*view); return NOERROR; }