Cześć,
mam klase rozszerzającą BaseExpandableListAdapter, i chciałbym z childa przejść na jakąś inną Acitivity. W child mam tam jeden TextView i jeden ImageView i w momencie kliknięcia na ImageView chciałbym pobrać dane i wkleić w nowym Activity. Problem jest taki, że pobiera mi złe dane tj. z innego childa. Oto kod:
(...)
@Override
public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
ViewHolder holder;
Log.d(TAG, "Group pos: " + groupPosition + " Child pos: " + childPosition);
if (convertView == null) {
convertView = layoutInflater.inflate(R.layout.listview_child_row_layout, parent, false);
holder = new ViewHolder();
ImageView imageView = (ImageView) convertView.findViewById(R.id.show);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Item item = (Item) getChild(groupPosition, childPosition);
Log.d(TAG, "Inner class - Group pos: " + groupPosition + " Child pos: " + childPosition);
DataHolderClass dataHolderClass = DataHolderClass.getInstance();
dataHolderClass.setDetailObject(item);
Intent intent = new Intent();
String fragment = "New";
intent.putExtra("Activity", fragment);
intent.setClass(context, NewAcitivity.class);
context.startActivity(intent);
}
});
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
return convertView;
}
@Override
public Object getGroup(int groupPosition) {
return groups.get(groupPosition);
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return children.get(groupPosition).get(childPosition);
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
(...)
Log pokazuje, że przy kliknięciu są nieprawidłowe (dla mnie) pozycje group i child. Niestety nie mam pomysłu na rozwiązanie tego. Z góry dzięki za odpowiedzi.