Obecnie mam widok listy, który wyświetla informacje o rzeczach, które muszą być zrobione.jak się dowiedzieć, kiedy kończy się ładowanie listview na Androidzie
Gdy użytkownik kliknie element na liście, aplikacja sprawdza, który element został kliknięty i ustawiony jako gotowy.
Jeśli pozycja została ustawiona jako wykonana, wyświetli obraz z zaznaczeniem; ten widok jest częścią elementu listy.
wszystko działa dobrze. Jeśli przewijam, zakończ działanie i otwórz je ponownie, odznacz element, wszystko działa dobrze i pokazuje lub ukrywa widok obrazu odpowiedniego elementu listy.
ale mój problem jest to, że:
mam 2 przyciski, aby sortować elementy widoku listy alfabetycznie oraz według daty. Kiedy je klikam, działają świetnie. ALE, aplikacja nie pokazuje widoku obrazu elementów, które zostały sprawdzone.
Wiem, że to dlatego, że aby pojawiły się kontrole, potrzebuję pełnego załadowania listy. Mam na myśli, pokaż w działaniu wszystkie informacje.
Moje pytanie brzmi:
Skąd mogę wiedzieć, kiedy widok listy odbywa wypełniania lub załadunku, tak że mogę wywołać metodę upewnić, które elementy zostały wyboru, aby wyświetlić podgląd obrazu?
Używam isfocused(), onfocuschanged(), onWindowChangeState() i wszystkich tych typów metod, ale żaden z nich nie uruchamia mojej metody.
Czy istnieje sposób sprawdzenia, czy pojawił się widok listy, aby sprawić, że pojawi się on na pokazanych przedmiotach, bez interakcji użytkownika?
Dziękujemy za poświęcony czas i pomoc.
PD: Mam już część, w której użytkownik przewija listę, ta część jest pod opieką.
Używam SimpleCursorAdapter do wypełnienia listy.
To gdzie ja wypełnić widoku listy:
public void mostrarLista(){
Cursor c = admin.obtenerCursorGastosFijos(ordenadoPor);
// The desired columns to be bound
String[] columnas = new String[] {"_id", "Descripcion", "Costo_Estimado", "Fecha_Pago"};
// the XML defined views which the data will be bound to
int[] views = new int[] {R.id.IdGstFijo, R.id.DescGstFijo, R.id.CostoGstFijo, R.id.FechaGstFijo };
// create the adapter using the cursor pointing to the desired data
//as well as the layout information
dataAdapter = new SimpleCursorAdapter(this, R.layout.lista_gastos_fijos, c, columnas, views, 0);
listaGastos = (ListView) findViewById(R.id.listaGastosFijos1);
// Assign adapter to ListView
listaGastos.setAdapter(dataAdapter);
listaGastos.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> Listview, View v,
int position, long id) {
// TODO Auto-generated method stub
Cursor cursor = (Cursor) Listview.getItemAtPosition(position);
String idGst=cursor.getString(cursor.getColumnIndexOrThrow("_id"));
dialogoOpcionesGst(Integer.parseInt(idGst), v).show();
return true;
}
});
listaGastos.setOnScrollListener(new OnScrollListener(){
@Override
public void onScroll(AbsListView arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
}
@Override
public void onScrollStateChanged(AbsListView arg0, int arg1) {
// TODO Auto-generated method stub
mostrarItemsPagados(listaGastos);
}
});
}
Jest to metoda, że zrobiłem poruszanie się przedmiotów, które są widoczne i sprawdzić, czy zostały one sprawdzone, czy nie
public void mostrarItemsPagados(ListView lista){
for (int i = 0; i <= lista.getLastVisiblePosition() - lista.getFirstVisiblePosition(); i++){
View item = (View)lista.getChildAt(i);
ImageView img = (ImageView)item.findViewById(R.id.imgPagado);
if(admin.existeGstFijoReal(Integer.parseInt(((TextView)item.findViewById(R.id.IdGstFijo)).getText().toString()))){
img.setImageResource(R.drawable.img_check);
}
else
img.setImageDrawable(null);
}
}
ten to metoda, której używam do sortowania listy:
public void ordenarNombre(View v){
ordenadoPor=1;
mostrarLista();
}
i cóż, układ pozycji na liście s:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
>
<TextView
android:id="@+id/IdGstFijo"
android:layout_height="match_parent"
android:layout_width="0dp"
android:layout_weight="2"
android:visibility="gone"
android:gravity="center"
android:lines="4" />
<TextView
android:id="@+id/DescGstFijo"
android:layout_height="match_parent"
android:layout_width="0dp"
android:layout_weight="2"
android:gravity="center"
android:lines="4" />
<TextView
android:id="@+id/CostoGstFijo"
android:layout_height="match_parent"
android:layout_width="0dp"
android:layout_weight="2"
android:gravity="center"
android:lines="4"/>
<TextView
android:id="@+id/FechaGstFijo"
android:layout_height="match_parent"
android:layout_width="0dp"
android:layout_weight="2"
android:gravity="center"
android:lines="4" />
<ImageView
android:id="@+id/imgPagado"
android:layout_height="match_parent"
android:layout_width="0dp"
android:layout_weight="1"
/>
jej zbyt długo zachowaj sortowanie czy chcesz czegoś na końcu listy? – Trikaldarshi
Jedna rzecz, która nigdy się nie kończy Załaduj tylko te elementy, które są aktualnie wyświetlane podczas przewijania, a inne są ładowane – Trikaldarshi
Cześć :) i jak wiedzieć, kiedy elementy, które są obecnie wyświetlane, są ładowane? To jest to, czego potrzebuję, abym mógł zadzwonić do mojej metody i umieścić czek na elementach, które wcześniej sprawdził użytkownik. – user2549221