J'ai une activité enfant qui contient un ListView. Cette activité est renseignée de manière asynchrone à partir d'un curseur SQLite. Les éléments de la liste contiennent un TextView, un RadioButton et un bouton normal. Le XML est indiqué ci-dessous:Comment savoir quand un ListView Android a été rempli
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/rlCategoryListItemLayout" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:id="@+id/tvCategoryListItemTitle" style="@style/uwLargeListItemLabelStyle" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:singleLine="true" android:text="This is a test note title" />
<LinearLayout android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_alignParentRight="true" android:gravity="center_vertical">
<RadioButton android:id="@+id/rdoCategoryListItemSelect" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginRight="10dip" />
<Button android:id="@+id/btnCategoryListItemDelete" android:background="@drawable/delete_red" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" />
</LinearLayout>
</RelativeLayout>
que je dois faire une certaine logique pour déterminer quel RadioButton est sélectionné par défaut, et je ne peux pas le faire jusqu'à ce que le ListView est déjà chargé. Le problème est qu'avec tous les événements que j'ai essayés jusqu'ici (onCreate, onPostCreate, onResume, onWindowFocusChanged), le nombre d'enfants ListView est zéro. J'ai également essayé d'utiliser la méthode getView dans la classe ArrayAdapter, mais cette méthode est appelée mutliple times et le nombre d'enfants ListView est potentiellement différent à chaque fois, ce qui conduit à des résultats inattendus. Apparemment, ces événements se déclenchent avant que le ListView ait fini de remplir complètement ses éléments enfants.
Y a-t-il un événement que je peux écouter, ou un autre moyen de déterminer quand le ListView a fini de remplir et que tous ses enfants sont accessibles pour être modifiés par programmation?
Merci!
Merci, Elevine. Je dois juste sélectionner l'un des boutons Radio par défaut. Lorsque j'essaie de faire cela, cependant, le ListView ne semble pas avoir encore d'éléments enfants. Donc, j'ai besoin de savoir quand le ListView est complètement peuplé afin que je puisse entrer et sélectionner un des éléments de la liste. – mahdaeng
Mon point est ce que vous voulez dire par "ListView est entièrement rempli" n'est pas clair. Si vous voulez dire par là que tous les éléments de la liste sont visibles, alors cette condition pourrait ne jamais se produire étant donné la façon dont ListView rend les lignes. – elevine
Oui - c'est exactement ce que je veux dire. :^( – mahdaeng