Подтвердить что ты не робот

Получить расширенный групповой вид ExpandableListView с помощью onGroupExpand

Я использую ExpandableListView, и я безуспешно пытаюсь переместить изображение при расширении группы (изображение является частью группового представления).

Вот мой код:

my_list_view.setOnGroupExpandListener(new OnGroupExpandListener()
{
    @Override
    public void onGroupExpand(int groupPosition)
    {
        Toast.makeText(getBaseContext(), "Group " + my_list_view.getGroupId(groupPosition), Toast.LENGTH_SHORT).show();
    }
});

В основном моя проблема: как я могу получить доступ к расширенному представлению Group, когда единственной переменной, которую я могу использовать, является groupPosition?

Любой ответ, который вам нужен, должен быть адаптирован к адаптеру, не будет принят. Я уже пробовал это, и он не работает для моей проблемы. Мне нужно прослушать событие onGroupExpand.

4b9b3361

Ответ 1

В итоге я использовал boolean isExpanded, который вы получаете бесплатно в getGroupView, когда вы делаете пользовательский адаптер. Я смог заставить все работать так, как я этого хотел, вместо того, чтобы делать это в своей деятельности. Если вы сохраните контекст, который вы получаете в конструкторе, вы можете использовать его для получения ресурсов.

@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
  if (isExpanded) {
    mContext.getResources().getDrawable(R.drawable.arrow)
    doSomething();
  }
  else {
    doSomethingElse();
  }
}

Это намного проще, чем мой другой ответ (который в любом случае был немного багги), поэтому забудьте об этом:)