Esiste un esempio di List / ListAdapter semplicissimo per Android

Ho un servizio web che restituisce una lista super semplice di oggetti

MyObject [] data = webServiceCall ();

MyObject ha 1 campo che voglio visualizzare, "Name" (es. data[0].Name )

Come posso trasformare questo in un’attività che elenca solo il nome di questi oggetti in un listActivity scorrevoleAttività su Android. Mi sto davvero confondendo con i cursori e non sono sicuro di aver bisogno dei cursori e non sono sicuro del tipo di adattatore da implementare ( BaseAdapter , SimpleAdapter ecc.)

Quindi penso che sto cercando tre cose,

l’attività, l’adattatore e il layout.xml

Sto solo cercando di capire questa roba da android, decisamente un noob qui

quindi penso di aver capito con un po ‘di ispirazione la risposta di RobGThai, sto postando il codice per chiunque altro, suppongo di non aver usato un adattatore personalizzato

Questo è il semplicissimo esempio che mi ha permesso di iniziare, quindi una volta ottenuto questo, mi sono assicurato che il mio “MyObject” avesse un metodo toString () per mostrarlo correttamente nell’elenco e ho passato l’array MyObject [] nella “nuova Costruttore ArrayAdapter invece di 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)); } } 

il layout xml che ho usato (temp.xml)

 < ?xml version="1.0" encoding="utf-8"?>     

rendere la tua attività estende anche ListActivity.

Allora questo dovrebbe aiutarti a iniziare.

 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); 

I secondi parametri possono essere modificati nel layout preferito. Vedi documento API per ulteriori informazioni.

È anche ansible albind una AlertDialog a ListView quando l’utente fa clic su un ListItem . Sto includendo un codice funzionante sotto nel caso in cui qualcuno stia provando la stessa cosa,

 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 chiave è che devi passare il contesto della tua attività di chiusura alla finestra di dialogo. L’ho scoperto quando getApplicationContext() non è riuscito con uno strano messaggio di errore.