Android: ListView no muestra ningún resultado
He incluido mi código para ayudar a aclarar las cosas. Básicamente tengo dos pantallas en mi aplicación, una mostrará una lista, y la otra permitirá al usuario añadir un nuevo elemento a esa lista. Finalmente, incorporaré datos de base de datos para guardar la vista de lista, pero no necesito ayuda con eso. Todavía no he codificado la segunda pantalla, por lo que no he incluido el código para ello.
El problema es que no puedo obtener la vista de lista para mostrar. Incluso he intentado agregar datos a la matriz a través de código, sin suerte. ¿Puede alguien ver un problema aquí?
- El niño especificado ya tiene un padre. Debe llamar a removeView () en el padre del niño primero
- Cómo utilizar recursos enteros dentro de recursos de cadena en android
- Cambiar el color de la barra de notificación
- Android - Creación de una imagen animada de tipo analógico para el movimiento
- ¿Cómo declarar varios atributos estilables con el mismo nombre para diferentes etiquetas?
Issues.java
public class Issues extends Activity { public static ArrayList<String> strArray; public static ArrayAdapter<String> arrayAdapter; public static ListView serieslistview; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.issues); strArray = new ArrayList<String>(); Button btaddnewseries = (Button) findViewById(R.id.button1); serieslistview = (ListView) findViewById(R.id.listView1); //opens the add new series menu btaddnewseries.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent myIntent = new Intent(ComicIssues.this, AddSeries.class); Issues.this.startActivity(myIntent); } }); strArray.add("Item One"); arrayAdapter = new ArrayAdapter<String>( this, android.R.layout.simple_list_item_1, strArray); serieslistview.setAdapter(arrayAdapter); arrayAdapter.notifyDataSetChanged(); }
issues.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:text="+" tools:ignore="HardcodedText" /> <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/button1" android:layout_marginTop="30dp" > </ListView> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/button1" android:layout_alignBottom="@+id/button1" android:layout_alignParentLeft="true" android:layout_marginLeft="21dp" android:text="Issues" android:textAppearance="?android:attr/textAppearanceLarge" /> </RelativeLayout>
- ¿Cómo hacer un botón que muestra el carácter de retroceso (⌫) en Android?
- Doctype Android lint.xml con declaración dtd
- Android: se centra en EditText después de la selección de Spinner
- Error de Android Studio XML
- Error al ejecutar el objetivo com.jayway.maven.plugins.android.generation2: android-maven-plugin
- Buscar en archivo XML con XPath en Android
- Edittext obtiene automáticamente el foco cuando se mueve entre páginas en un paginador de vista
- Cómo establecer recurso de imagen a ImageView utilizando DataBinding
En realidad, no veo ningún problema en su código. Te daré dos cosas que he notado.
1) En vez de enumerar sus datos en un ArrayList
utilice la String[]
2) No tiene que llamar a notifyDataSetChanged()
cuando da al adapter
los datos de entrada. Sólo cuando cambia la lista de datos más tarde. Así que en lugar de volver a inicializar el adaptador, simplemente llame a notifyDataSetChanged
Pruebe este código y háganme saber si todavía tiene un problema.
public class Issues extends Activity { public static ArrayAdapter<String> arrayAdapter; public static ListView serieslistview; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.issues); Button btaddnewseries = (Button) findViewById(R.id.button1); serieslistview = (ListView) findViewById(R.id.listView1); //opens the add new series menu btaddnewseries.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent myIntent = new Intent(ComicIssues.this, AddSeries.class); Issues.this.startActivity(myIntent); } }); String[] values = new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }; arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1,values); serieslistview.setAdapter(arrayAdapter); }
Y usa este .xml en lugar del tuyo
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:text="+" tools:ignore="HardcodedText" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/button1" android:layout_alignParentLeft="true" android:text="Issues" android:textAppearance="?android:attr/textAppearanceLarge" /> <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:layout_below="@+id/textView1" /> </RelativeLayout>
- Android Google play service, Se ha producido un error fatal en el desarrollador. Compruebe los registros para obtener más información
- Android: SwitchCompat, problemas de relleno y color