Android: ListView sólo muestra el primer resultado
Estoy trabajando en una aplicación para Android que interactúa con Twitter usando su API de búsqueda. Everythings funciona bien excepto que cuando quiero mostrar el resultado usando un ListView, sólo se muestra el primer resultado.
ArrayList<TwitterJSONResults> arrayList = new ArrayList<TwitterJSONResults>(data.getResults().size()); for (int i = 0; i < data.getResults().size(); i++) { arrayList.add(data.getResults().get(i)); } ArrayAdapter<TwitterJSONResults> resultAdapter = new ArrayAdapter<TwitterJSONResults>( this, android.R.layout.simple_list_item_1, arrayList); listview.setAdapter(resultAdapter); resultAdapter.notifyDataSetChanged();
El fragmento de código anterior muestra cómo agrego los resultados al adaptador y configuro este adaptador en el listview, ¿Qué estoy haciendo mal?
- Android - Botones dinámicos ListView para cada fila que llama a los oyentes dinámicos
- El encabezado ListView ignora el layout_height
- Android ListView en el ejemplo de fragmento
- Mantener el último elemento visible de un ListView cuando el tamaño del ListView cambia
- ¿Cómo se pone un borde alrededor de un ListView?
- centralizar el texto en una vista de lista
- ¿Cómo coloco los widgets encima y debajo de una vista de lista?
- Complejo ListView ejemplo con datos complejos y compleja disposición de cada fila?
- Android: diseño de xml para una lista con diferentes elementos
- Android eliminar de listview, la experiencia del usuario
- Visibilidad de diseño y vistas en la aplicación
- Cómo cambiar el color de la fuente en los elementos ListView seleccionados / enfocados?
- ListViews con múltiples diseños de elementos
No coloque ListView dentro de ScrollView 🙂
No es una respuesta. Puede utilizar ListView en ScrollView. Leer esto: http://kennethflynn.wordpress.com/2012/09/12/putting-android-listviews-in-scrollviews/
Gracias a @ 207 me di cuenta de que el problema en mi caso era porque estaba usando NestedScrollView , por lo que para mí la solución se utilizó
android:fillViewport="true"
Aquí mi código:
<android.support.v4.widget.NestedScrollView android:id="@+id/content_frame" android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true" app:layout_behavior="@string/appbar_scrolling_view_behavior"> </android.support.v4.widget.NestedScrollView>
Resulta que tenía todo en mi código java trabajando perfectamente. El problema era que estaba utilizando el listview dentro de un scrollview que generalmente es una mala idea. Esto llevó a listview a ignorar
android:layout="wrap_content"
Por lo tanto el contenido estaba allí, simplemente no estaba mostrando. Después de quitar el scrollview de mi archivo XML, todo trabajó archivo.
Muchas gracias a 207 por el apoyo 🙂
He tenido este error como usted cuando puso listview dentro de ScrollView. Y mi solución está siguiendo como:
1. Cree una vista de lista personalizada que no se puede desplazar
public class NonScrollListView extends ListView { public NonScrollListView(Context context) { super(context); } public NonScrollListView(Context context, AttributeSet attrs) { super(context, attrs); } public NonScrollListView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int heightMeasureSpec_custom = MeasureSpec.makeMeasureSpec( Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, heightMeasureSpec_custom); ViewGroup.LayoutParams params = getLayoutParams(); params.height = getMeasuredHeight(); }
}
2. Utilice encima de la clase personalizada para el archivo xml
<xx.xx.NonScrollListView android:id="@+id/lv_nonscroll_list" android:layout_width="match_parent" android:layout_height="wrap_content" > </xx.xx.NonScrollListView>
Funcionó bien en toda la versión de OS para mí. La mejor esperanza para usted.
- Simple TextView.setText causa 40% de uso de CPU
- ¿Cómo obtener un perfil como género de google signin en Android?