/ / Einstellen eines Adapters für das ListView Android Studio - Android, Listenansicht

Einstellen eines Adapters für das ListView Android Studio - Android, Listenansicht

Ich versuche, einige Elemente in einer ListView hinzuzufügen. Wenn ich das Layout (StartActivity) swith, rufe ich die Klasse Listing auf.

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listing);
ListView lv = (ListView) findViewById(R.id.listViewLIST);
String[] items = {"Item1", "Item2", "Item3", "Item4"};
ArrayList<String> arrayList = new ArrayList<>(Arrays.asList(items));
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, R.layout.activity_listing, R.id.listViewLIST, arrayList);
lv.setAdapter(adapter);
}

Ich lese einige Tutorials und befolge jeden Schritt, aber die App funktioniert immer in der letzten Zeile des Codes

lv.setAdapter(adapter);

Was vermisse ich?

Bearbeiten 27.12.2015 Die activity_listing.xml

    <?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"            android:layout_height="match_parent" android:fitsSystemWindows="true"
tools:context="cigarkings.cigarking.Listing">

<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listViewLIST"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_marginTop="51dp" />

<SearchView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/searchView"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignRight="@+id/listView"
android:layout_alignEnd="@+id/listView" />

<include layout="@layout/content_listing" />

</android.support.design.widget.CoordinatorLayout>

Antworten:

0 für die Antwort № 1

Annahme fehlender Aussage android:layout_width="match_parent" Der Hauptfehler für Ihr Coordinator-Layout als typografischer Fehler besteht in der Einrichtung des Array-Adapters.

In der Aussage: ArrayAdapter<String> adapter = new ArrayAdapter<>(this, R.layout.activity_listing, R.id.listViewLIST, arrayList); die Konstruktorparameter (2. Parameter:R.layout.activity_listing und 3. Parameter:R.id.listViewLIST) sind falsch.Array Adapter verwendet die Ressourcen-ID einer Textansicht als drittes Argument und nicht als Listenansicht, und die Layout-Ressourcen-ID des Layouts, das die Textansicht enthält, wird als zweites Argument übergeben.

Also, eine Lösung dafür ist, ein separates zu erstellenXML-Layout, das eine Textansicht enthält und die Layout-Ressourcen-ID als zweites Argument und Textansichts-ID als drittes Argument an den Konstruktor von Array-Adapter übergibt


0 für die Antwort № 2

Zunächst sollte die Aktivitätenliste nicht in diesem Muster erscheinen.
Wenn Sie sich in der Anfangsphase befinden, versuchen Sie es zuerst Tutorial...
Die beste Erklärung für Anfänger.
Anschließend müssen Sie benutzerdefiniertes listView mit der BaseAdaptor-Klasse und benutzerdefiniertem XML implementieren.