Cómo implementar paginación con desplazamiento en la vista de lista de Android
Ver ejemplos:
paquete com.test;
importar android.app.ListActivity;
importar android.os.Bundle ;
importar android.os.Handler;
importar android.view.Gravity;
importar android.view.View;
importar android.view.ViewGroup;
importar android.widget.AbsListView;
importar android.widget.BaseAdapter;
importar android.widget.ImageView;
importar android.widget.ImageView;
p>
importar android.widget.LinearLayout;
importar android.widget.ProgressBar;
importar android.widget.TextView;
importar android. widget.AbsListView.OnScrollListener;
importar android.widget.LinearLayout.LayoutParams;
la prueba de clase pública extiende ListActivity implementa OnScrollListener {
Adaptador Aleph0 = nuevo Aleph0 (
int lastItem = 0;
int mProgressStatus = 0;
controlador privado mHandler = new Handler(); ProgressBar;
protected void onCreate(Bundle saveInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout searchLayout = new LinearLayout(this);
p>
searchLayout.setOrientation(LinearLayout.HORIZONTAL);
ProgressBar = new ProgressBar(this);
ProgressBar.setPadding(0, 0, 15, 0);
searchLayout.addView(progressBar, nuevo LinearLayout.LayoutParams(
LinearLayout
.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
TextView textView = new TextView(this);
textView.setText("Cargando . ..");
textView.setGravity(Gravity.CENTER_VERTICAL);
searchLayout.addView(textView, new LinearLayout.LayoutParams(
LinearLayout.LayoutParams . FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT));
searchLayout.setGravity(Gravity.CENTER);
LinearLayout loadingLayout = new LinearLayout(this); /p>
cargandoLayout.addView(searchLayout, new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
loadingLayout.setGravity(Gravity.CENTER);
getListView().addFooterView(loadingLayout);
// Iniciar operación larga en un hilo en segundo plano
// nuevo hilo(nuevo Runnable() {
// public void run() {
// while (mProgressStatus lt; 100) {
/ /
// // Actualiza la barra de progreso
// mHandler.post(new Runnable() {
// public void run() {
// barra de progreso.setProgress(mProgressStat
nosotros);
// }
// });
// }
// }
// }).start();
RegisterForContextMenu(getListView());
setListAdapter(adapter);
getListView().setOnScrollListener( this);
}
public void onScroll(AbsListView v, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
/ /lastItem = firstVisibleItem visibleItemCount - 1;
//System.out.println("lastItem: " lastItem);
}
public void onScrollStateChanged(AbsListView); v, int estado) {
// if (lastItem == adaptor.count
// state == OnScrollListener.SCROLL_STATE_IDLE) {
// adaptador .count = 10;
// adaptador.notifyDataSetChanged();
// }
if (estado == OnScrollListener.SCROLL_STATE_IDLE) {
adaptor.count = 10;
adaptor.notifyDataSetChanged();
}
}
clase Aleph0 extiende BaseAdapter {
int recuento = 10;
public int getCount() {
retorno recuento
} p>
Objeto público getItem(int pos) {
return po
s;
}
public long getItemId(int pos) {
return pos; Vista pública getView(int pos, Ver v, ViewGroup p) {
Vista de TextView = new TextView(test.this);
view.setText("entry " pos);
view.setHeight(90);
devolver vista
}
}
}