setOnClickListener в элементе внутри дочерних элементов из ExpandableListView

#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. Каков текущий результат? Он отображает неправильное сообщение или вообще не содержит тоста?