#java #android
#java #Android
Вопрос:
Я создаю ExpandableListView и хочу щелкнуть по элементу, существующему в дочерних элементах из моего ExpandableListView, и вызвать функцию, объявленную в моем фрагменте, где это мой ExpandableListView. Я перепробовал много решений, но я не могу получить ожидаемый результат. Я видел одно решение для Listview, использующее performItemClick()
, но продолжающееся без результатов.
Мой адаптер получает childView
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent)
{
final JSONObject expandedListText = (JSONObject) getChild(groupPosition, childPosition);
if (convertView == null) {
convertView = inflater.inflate(R.layout.item_event_presented_profile, null);
}
try {
...
//element it's un image
convertView.findViewById(R.id.rejectEvent).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
Toast.makeText(context, "Reject " expandedListText.getString("_id"), Toast.LENGTH_SHORT).show();
} catch (JSONException e) {
e.printStackTrace();
}
}
});
...
} catch (JSONException e) {
e.printStackTrace();
}
return convertView;
}
Мой фрагмент
private void expandableListView (){
expandableListView = view.findViewById(R.id.expandableListView_events);
adapter = new ProfileCustomExpandableListAdapter(view.getContext(), titleList, this.meetingsMapJsonObj, userAccount,expandableListView);
expandableListView.setAdapter(adapter);
expandableListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
/*try {
Toast.makeText(view.getContext(), meetingsMapJsonObj.get(titleList.get(groupPosition)).get(childPosition).getString("_id"), Toast.LENGTH_SHORT).show();
} catch (JSONException e) {
e.printStackTrace();
}*/
long viewId = view.getId();
if (viewId == R.id.rejectEvent) {
Toast.makeText(getContext(), "reject", Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(getContext(), "ListView clicked" id, Toast.LENGTH_SHORT).show();
}
return false;
}
});
}
Я действительно хочу нажать rejectEvent и выполнить следующую функцию.
public void leavingMeeting(int groupPosition, int childPosition, String id){
Toast.makeText(getContext(), "Reject participation", Toast.LENGTH_SHORT).show();
}
Комментарии:
1. В чем проблема? Можете ли вы также добавить макет?
2. Каков текущий результат? Он отображает неправильное сообщение или вообще не содержит тоста?