Próbuję zaprogramować interfejs Androida, który korzysta z rozwijanej listy po stronie i fragmentu po drugiej stronie, dzięki czemu mogę załadować różne zasoby, klikając dzieci listy rozwijanej. Ale niestety nie mogę znaleźć żadnych dobrych tutoriali na temat tej listy w dowolnym miejscu. Tak, zaglądałem w dema API i stworzyłem normalną listę z BaseExpandableListAdapter, ale mimo to, zrozumienie tych list dobrze jest trochę trudne bez dobrego samouczka, czy masz jakieś dobre wokół lub informacje, które mogę sprawdzić?Android ExpandableListView - Szukasz samouczka
Odpowiedz
można znaleźć przykładowe pracy rozszerzalnej widoku listy według poniższych linków:
za kliknięcie na dziecko, można obsłużyć w ten sposób.
getExpandableListView().setOnChildClickListener(new OnChildClickListener() {
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
// your code...
}
});
Mam nadzieję, że to ci pomoże. Dzięki ..
Stwórz listę pozycji
List<ParentItem> itemList = new ArrayList<ParentItem>();
ParentItem parent1 = new ParentItem();
parent1.getChildItemList().add(new ChildItem());
parent1.getChildItemList().add(new ChildItem());
parent1.getChildItemList().add(new ChildItem());
ParentItem parent2 = new ParentItem();
parent2.getChildItemList().add(new ChildItem());
parent2.getChildItemList().add(new ChildItem());
parent2.getChildItemList().add(new ChildItem());
itemList.add(parent1);
itemList.add(parent2);
ExpandableListViewAdapter adapter = new ExpandableListViewAdapter(context, itemList);
Data Objects
public class ParentItem {
private List<ChildItem> childItemList;
public ParentItem() {
childItemList = new ArrayList<ChildItem>();
}
public List<ChildItem> getChildItemList() {
return childItemList;
}
}
public class ChildItem {
// filll with your data
}
Adapter
public class ExpandableListViewAdapter extends BaseExpandableListAdapter {
private static final class ViewHolder {
TextView textLabel;
}
private final List<ParentItem> itemList;
private final LayoutInflater inflater;
public ExpandableListViewAdapter(Context context, List<ParentItem> itemList) {
this.inflater = LayoutInflater.from(context);
this.itemList = itemList;
}
@Override
public ChildItem getChild(int groupPosition, int childPosition) {
return itemList.get(groupPosition).getChildItemList().get(childPosition);
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public int getChildrenCount(int groupPosition) {
return itemList.get(groupPosition).getChildItemList().size();
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView,
final ViewGroup parent) {
View resultView = convertView;
ViewHolder holder;
if (resultView == null) {
resultView = inflater.inflate(android.R.layout.test_list_item, null); //TODO change layout id
holder = new ViewHolder();
holder.textLabel = (TextView) resultView.findViewById(android.R.id.title); //TODO change view id
resultView.setTag(holder);
} else {
holder = (ViewHolder) resultView.getTag();
}
final ChildItem item = getChild(groupPosition, childPosition);
holder.textLabel.setText(item.toString());
return resultView;
}
@Override
public ParentItem getGroup(int groupPosition) {
return itemList.get(groupPosition);
}
@Override
public int getGroupCount() {
return itemList.size();
}
@Override
public long getGroupId(final int groupPosition) {
return groupPosition;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View theConvertView, ViewGroup parent) {
View resultView = theConvertView;
ViewHolder holder;
if (resultView == null) {
resultView = inflater.inflate(android.R.layout.test_list_item, null); //TODO change layout id
holder = new ViewHolder();
holder.textLabel = (TextView) resultView.findViewById(android.R.id.title); //TODO change view id
resultView.setTag(holder);
} else {
holder = (ViewHolder) resultView.getTag();
}
final ParentItem item = getGroup(groupPosition);
holder.textLabel.setText(item.toString());
return resultView;
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}
Daje
==============================
+Parent 1
==============================
-child 1.1
==============================
-child 1.2
==============================
-child 1.3
==============================
+Parent 2
==============================
-child 2.1
==============================
-child 2.2
==============================
-child 2.3
==============================
, ale jak mogę obsłużyć zdarzenie kliknięcia na listach potomnych? bo to jest główny problem ze wszystkimi tutorialami, które znalazłem – DeX03
'Semi colon (;)' brakuje '
Otrzymuję null 'holder.textLabel.setText (item.toString()); ', Jak to naprawić? –
ten sposób można obsługiwać zdarzenia:
getExpandableListView().setOnChildClickListener(new OnChildClickListener()
{
public boolean onChildClick(ExpandableListView parent,
View v, int groupPosition, int childPosition, long id)
{
// your code...
}
}
nieistotna odpowiedź .... –
- 1. Szukasz dobrego samouczka klasy php mysqli
- 2. Android ExpandableListView użyciu animacji
- 3. Android LongClickListener na artykułach grupy ExpandableListView
- 4. Android ExpandableListView dzielnik jest niewidoczny
- 5. Szukasz android Facebooku przykładów SDK
- 6. Android ExpandableListView i baza danych SQLite
- 7. android notifyDataSetChanged for ExpandableListView nie działa
- 8. Android niestandardowy Expandablelistview nie uruchamia OnChildClick
- 9. Android ExpandableListView Rodzic za pomocą przycisku
- 10. Android ExpandableListView wskaźnik/ikona zawsze rozciągnięty
- 11. Android ExpandableListView - ustaw grupę nie rozszerzalną
- 12. mvvmcross expandablelistview
- 13. Dobry tutorial samouczka SplitViewController?
- 14. Potrzebujesz samouczka dla DotNetOpenAuth
- 15. ExpandableListView jest zawsze zwinięty
- 16. Jak utworzyć półprzezroczystą szarą nakładkę samouczka w systemie Android?
- 17. Jak wyłączyć zwijanie widoku ExpandableListView?
- 18. ExpandableListView i NavigationDrawer
- 19. Kotlin - Dodaj pozycje do ExpandableListView
- 20. Od Django samouczka was_published_recently.admin_order_field = 'pub_date'
- 21. Przykład drukowania/samouczka Linux/CUPS?
- 22. Android: getChild() EditText wartości na przycisku kliknij ExpandableListView
- 23. Android - Thumb fastscroll w expandablelistview nie robi poprawnie listy przewijania
- 24. Android expandablelistview nie może wyświetlić ostatniej grupy po rozwinięciu
- 25. android expandablelistview nie rozwija się ani nie odbiera zdarzeń kliknięcia
- 26. Jak obsługiwać zdarzenie typu "dziecko" w Expandablelistview w systemie Android?
- 27. ExpandableListView z EditText
- 28. Aktualizacja ExpandableListView z notifyDataSetChanged()
- 29. ExpandableListView i pola wyboru
- 30. Definicja ExpandableListView w xml
Nie mogę uwierzyć, że to zostało oznaczone jako „nie konstruktywne”! To było bardzo konstruktywne, a odpowiedzi bardzo pomocne! Dziękuję za opublikowanie tego pytania, DeX03. –