Android: come posizionare ListView in XML?

Vorrei fare un'applicazione semplice che mostra un elenco di contatti (nome, cognome). Il mio codice:

package list.android; import java.util.*; import android.app.ListActivity; import android.os.Bundle; import android.widget.*; class Contact{ String nume; String prenume; Contact(String nume, String prenume){ this.nume=nume; this.prenume=prenume; } public String toString(){ return prenume +" "+ nume; } } public class Lista1Activity extends ListActivity { /** Called when the activity is first created. */ ArrayList <Contact> list; ArrayAdapter <Contact> adaptor; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); setListAdapter(adaptor); list=new ArrayList<Contact>(); adaptor=new ArrayAdapter<Contact>(this, R.id.element, list); adaugaContact("Florian", "Iancu"); adaugaContact("Ioana", "Constantina"); } public void adaugaContact(String nume, String prenume){ list.add(new Contact(nume, prenume)); adaptor.notifyDataSetChanged(); } } 

Nel XML ho il LinearLayout e un TextView che è l'elemento dell'elenco. Quando lo eseguo, il simulatore dice "Sorry, the application [...] has stopped unexpectedly. Please try again." Il LogCat mi dice che devo avere un ListView cui id è android.R.id.list. Se creo un field ListView random nel file XML e le dà l'id "list", ancora non funziona. Come denominarlo ListView da XML per abbinare qualcosa nel mio codice Java? In altre parole, so che sbaglio, ma where e come posso risolverlo?

  • Ottenere il numero IMSI o il numero di telefono di destinazione dal messaggio incomming (SMS)
  • come serializzare un object di android.graphics.Path
  • Lavora intorno a Canvas.clipPath () che non è più supportto in android
  • Trasmissione su Wi-Fi Direct
  • Eseguire la prima applicazione Android - messaggio di errore
  • Cosa utilizzare invece di "addPreferencesFromResource" in una PreferenceActivity?
  • File di caricamento - Android a Google App Engine (PHP)
  • SQLite: impedisce duplicati
  • Perché un Comparatore implementa Serializable?
  • Android - Aggiusta l'orientamento dello schermo solo per una pagina (phonegap)
  • Integra la mia applicazione con il contatto
  • Libreria Android Volley: dobbiamo sempre ripetere Response.Listener e Response.ErrorListener
  • 3 Solutions collect form web for “Android: come posizionare ListView in XML?”

    Nel LinearLayout è necessario specificare il componente ListView.

    Ecco come deve essere il tuo main.xml :

     <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ListView android:id="@+id/sampleListView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginBottom="10dp" android:layout_marginTop="5dp" android:background="@android:color/transparent" android:cacheColorHint="@android:color/transparent" android:divider="#CCCCCC" android:dividerHeight="1dp" android:paddingLeft="2dp" > </ListView> </LinearLayout> 

    Quindi per la listview fare un layout: list_item.xml

     <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="10dp" android:textSize="16sp" > </TextView> 

    Modifica la tua class di attività come questa:

     public class Lista1Activity extends ListActivity { ArrayList<Contact> list; ArrayAdapter<Contact> adaptor; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); list = new ArrayList<Contact>(); adaugaContact("Florian", "Iancu"); adaugaContact("Ioana", "Constantina"); adaptor = new ArrayAdapter<String>(this, R.layout.list_item, list); setListAdapter(adaptor); } public void adaugaContact(String nume, String prenume) { list.add(new Contact(nume, prenume)); adaptor.notifyDataSetChanged(); } } 
     <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ListView android:id="@+id/listview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:divider="#000000" android:dividerHeight=".5dpdp" android:paddingLeft="1dp" /> </LinearLayout> 

    Sembra che sia necessario rivedere nuovamente la documentazione .

    È ben descritto.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.