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?

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.

  • Cambiar dinámicamente el diseño de fila de un ListView
  • Disposición de Android con ListView y botones
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.