studio programacion para herramientas desarrollo con avanzado aplicaciones android listview android-activity listadapter

programacion - ¿Hay un ejemplo muy simple de List/ListAdapter para Android?



manual android studio avanzado (3)

Haz que tu Actividad amplíe también ListActivity.

Entonces esto debería ayudarte a empezar.

Object[] sArray = {"This", "is", 3.5, true, 2, "for", "bla"}; ArrayAdapter adp = new ArrayAdapter(this, android.R.layout.simple_list_item_1, sArray); setListAdapter(adp);

Los segundos parámetros se pueden cambiar a su diseño preferido. Ver documento API para más información.

Tengo un servicio web que devuelve una lista super simple de objetos

MyObject [] data = webServiceCall ();

MyObject tiene 1 campo que quiero mostrar, "Name" (es decir, data[0].Name )

¿Cómo puedo convertir esto en una actividad que listActivity solo el nombre de estos objetos en una lista de actividades desplazable en Android? Estoy realmente confundido con los cursores y no estoy seguro de si necesito los cursores y no estoy seguro de qué tipo de adaptador implementar ( BaseAdapter , SimpleAdapter , etc.)

Así que supongo que estoy buscando tres cosas,

La actividad, el adaptador y el layout.xml

Solo estoy tratando de resolver estas cosas de Android, definitivamente un noob aquí


También puede adjuntar un AlertDialog a ListView cuando el usuario haga clic en un ListItem . Incluyo un código de trabajo a continuación en caso de que alguien esté intentando lo mismo,

final ListView v = getListView(); v.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(final AdapterView<?> parentView, View view, int position, long id) { final String fileName = (String) parentView.getItemAtPosition(position); new AlertDialog.Builder(parentView.getContext()).setTitle("Upload").setMessage("Upload " + fileName +"?") .setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface di, int arg1) { //do something here... } }).setNegativeButton("Cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface di, int arg1) { di.dismiss(); } }).show(); } });

La clave es que necesita pasar el contexto de su actividad de encierro al diálogo. Descubrí eso cuando getApplicationContext() falló con un extraño mensaje de error.


así que creo que lo descubrí con un poco de inspiración de la respuesta de RobGThai, estoy publicando el código para que lo vea cualquier persona, supongo que realmente no usé un adaptador personalizado

Este es el ejemplo súper simple que me permitió comenzar, así que una vez que tuve esto, me aseguré de que "MyObject" tuviera un método toString () para mostrarlo correctamente en la lista y pasé la matriz MyObject [] a "new ArrayAdapter "constructor en lugar de listItems

FooList.java

import android.app.ListActivity; import android.os.Bundle; import android.widget.ArrayAdapter; public class FooList extends ListActivity { String[] listItems = {"item 1", "item 2 ", "list", "android", "item 3", "foobar", "bar", }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.temp); setListAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, listItems)); } }

el diseño xml que utilicé (temp.xml)

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <TextView android:id="@android:id/empty" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Empty set" /> </LinearLayout>