2010-08-14 4 views
8

Я просто попытался текущую выборку Google для ExpandableListiew:ExpandableListView выборка из Google

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

Например, представьте, что я удаляю все «Имена кошек», стрелка все еще существует, и когда я нажимаю на нее, стрелка просто меняется. Как удалить эту стрелку и запустить ее?

ответ

12

Если вы говорите о стрелке, который используется, чтобы свернуть/развернуть список, то вы можете удалить его с помощью setGroupIndicator()

в деятельности вы можете вызвать

getExpandableListView().setGroupIndicator(null); 

что будет однако удалите стрелку. Если вы хотите скрыть это только в том случае, если список пуст, вы можете сделать это с помощью атрибутов xml, таких как this

Чтобы запустить действие, когда список расширен или свернут, вы можете переопределить onGroupExpanded (или свернуто) в своей реализации ListAdapter и использовать что активировать свою деятельность

2

В общем, если вы хотите, чтобы определенная область вашей деятельности была обновлена, когда вы возвращаетесь из другого вида деятельности; вы должны написать в методе onResume().

Шаги: 1 - В деятельности вы хотите, чтобы он отдохнул, переопределить метод onResume():

@Override 
protected void onResume() { 
    super.onResume(); 
    // TODO: PUT YOUR REFRESH CODE IN HERE 
} 

2- Вам нужно будет обновить адаптер Расширяемый.

Я предлагаю вам взять тот же код, используемый для создания экземпляра вашего расширяемый список и поместить его снова, как следует:

SimpleExpandableListAdapter expandableListAdapter = 
    new SimpleExpandableListAdapter(
     this, 
     YourPrentsList, // List of your parent 
     R.layout.parents_layout, // Layout for the Parents 
     new String[] { "groupKey" }, // Key in the Group Data maps to display 
     new int[] { 1 },   
     childrenList, // List of the children 
     R.layout.childs_layout, // Layout of the children 
     new String[] { "keys"}, 
     new int[] { 1} 
    ); 
setListAdapter(expandableListAdapter); 

Я надеюсь, что это решит вашу озабоченность ... Спасибо,

Mohamed ,

+0

Ваш ответ, к сожалению, не по теме. Я просил удалить стрелку, когда у родителя нет ребенка ... –

+1

@ Profete162. Это было какое-то время, так как я ответил на этот вопрос. Когда я прочитал вопрос и ответ сейчас, я не знаю, о чем я думал ... извините, если я спам ваш вопрос человек. Вы все равно решили проблему? –

+0

Не пожалеете, вы пытались мне помочь! К сожалению, это было для меня тоже! Поскольку я не мог найти ответ, я использовал Alertdialog и ListView для отображения дочернего элемента, если они доступны. Если нет ребенка, я просто перехожу к следующему действию. –