Próbuję uzyskać dostęp do widoku tekstowego GroupView, który pokazuje liczbę zaznaczonych pól w widoku ChildView. Uzyskiwanie dostępu do widoku TextView z widoku grupowego getChildView() z ExpandableListView
Dla np. - Północ to GroupView, a lista poniżej z polem wyboru to ChildView. Chcę zaktualizować licznik (18) za pomocą każdego kliknięcia pola wyboru. Zastosowałem pole wyboru OnClickListner na polu wyboru. Mam niestandardowy ExpanadableListViewAdapter rozszerza BaseExpandableListAdapter.
Tu jest mój urywek kodu -
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.filter_expandable_list_group,
parent, false);
groupViewHolder = new GroupViewHolder();
groupViewHolder.GroupName = (TextView) convertView.findViewById(R.id.group_name);
groupViewHolder.GroupCount = (TextView) convertView.findViewById(R.id.group_count);
groupViewHolder.rightArrow = (ImageView) convertView.findViewById(R.id.right_arrow);
convertView.setTag(groupViewHolder);
}else{
groupViewHolder = (GroupViewHolder) convertView.getTag();
}
groupViewHolder.GroupName.setText(((OutletListData) getGroup(groupPosition)).getName());
groupViewHolder.GroupCount.setText(""+((OutletListData) getGroup(groupPosition)).getOutletDatas().size());
return convertView;
}
@Override
public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, final ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.filter_expandable_list_child,
parent, false);
childViewHolder = new ChildViewHolder();
childViewHolder.childTextView = (TextView) convertView.findViewById(R.id.text1);
childViewHolder.childCheckBox = (CheckBox) convertView.findViewById(R.id.checkbox);
convertView.setTag(childViewHolder);
}else{
childViewHolder = (ChildViewHolder) convertView.getTag();
}
childViewHolder.childTextView.setText(((OutletData) getChild(groupPosition, childPosition)).getDealerName());
childViewHolder.childCheckBox.setChecked(((OutletData) getChild(groupPosition, childPosition)).getSelected() == "1");
childViewHolder.childCheckBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean isChecked = ((CheckBox) v).isChecked();
ApplicationController.getEventBus().post(((OutletData) getChild(groupPosition, childPosition)).getOutletID());
if (isChecked) {
((OutletData) getChild(groupPosition, childPosition)).setSelected("1");
} else {
((OutletData) getChild(groupPosition, childPosition)).setSelected("0");
}
}
});
return convertView;
}
jasne i zwięzłe odpowiedzi! –