Получить расширенный групповой вид 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.
Ответы
Ответ 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();
}
}
Это намного проще, чем мой другой ответ (который в любом случае был немного багги), поэтому забудьте об этом:)