KIO
Kreative Ideen online

Die einfachste Möglichkeit zum Verbinden von Elementen mit einer ListView (statische Daten)

res/values/strings.xml

<resources></resources>
    <string-array name="options"></string-array>
        <item>Getränke</item>
        <item>essen</item>
        <item>Läden</item>
    

Die ListView in der Layoutdatei

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"></LinearLayout 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"
    android:orientation="vertikal"
    tools:context=". TopLevelActivity">
    <ListView></ListView>
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="+id/list_options"
        android:entries="@array/Optionen">

Verwenden Sie für nicht statische Daten einen Adapter

Wenn Sie Daten in einer Listenansicht anzeigen müssen, die aus einer anderen Quelle als strings.xml (z. B. einer Datenbank) stammen, müssen Sie einen Adapter verwenden. Ein Adapter fungiert als Brücke zwischen der Datenquelle und der Listenansicht.

Es gibt verschiedene Arten von Adaptern. Im Moment werden wir uns auf Arrayadapter konzentrieren.

Sie verwenden einen Array-Dapter, indem Sie ihn initialisieren und dann an die Listenansicht anfügen. Um den Arrayadapter zu initialisieren, geben Sie zunächst an, dass der Datentyp in dem Array enthalten ist, das Sie an die Listenansicht binden möchten. Anschließend übergeben Sie dem Arrayadapter drei Paramteter:

  • ein Kontext (in der Regel die aktuelle Aktivität
  • Eine Layoutressource gibt an, wie jedes Element angezeigt werden soll
  • das Array selbst

Hier ist der Code zum Erstellen eines Arrayadapters, der Getränkedaten aus einem Array anzeigtKlicken
Sie hier, um den Cursoradapter für die Datenbankverbindung anzuzeigen.

ArrayAdapter<Drink> listAdapter =<>neuer ArrayAdapter (this,android. R.layout.simple_list,Drink.drinks);</Drink>

Anschließend fügen Sie den Arrayadapter mithilfe der ListView setAdapter()-Methode an die Listenansicht an.

ListView listDrinks = (ListView) findViewById(R.id.list_drinks);
listDrinks.setAdapter(listAdapter);

Vollständiger Code für kontextabhängige…

Paket eu.kio.starbuzz;

importieren android.app.Activity;
importieren android.os.Bundle;
importieren android.widget.ArrayAdapter;
importieren android.widget.ListView;

Public Class DrinkCategoryActivity erweitert die Aktivität

    @Override
    geschützte void onCreate(Bundle savedInstanceState)
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_drink_category);
        ArrayAdapter<Drink> listAdapter =<>neuer ArrayAdapter (this,android. R.layout.simple_list_item_1,Drink.drinks);</Drink>

        ListView listDrinks = (ListView)findViewById(R.id.list_drinks);
        listDrinks.setAdapter(listAdapter);
    }
}

Listenansichten abrufen, um auf Klicks zu reagieren

Ereignis-Listener

Sie lassen die Elemente in einer Listenansicht auf Klicks reagieren, indem Sie einen Eventlistener implementieren. Und Event-Listener ermöglicht es Ihnen, auf Ereignisse zu hören, die in Ihrer App stattfinden.

AdapterView.OnItemClickListener itemClickListener = neuer AdapterView.OnItemClickListener()
            /*
            * Die Ansicht, auf die geklickt wurde (in diesem Fall die Listenansicht)
            * Diese Parameter geben Ihnen Informationen darüber, welches Element in der Listenansicht angeklickt wurde, 
            * wie die Elementansicht und ihre Position*/
            public void onItemClick(AdapterView<?> </?> listView,View itemView,int position,long id)
                if(Position == 0)
                    Absicht = neue Absicht(TopLevelActivity.this, DrinkCategoryActivity.class);
                            startActivity(intent);
                }
            }
        }

Nachdem Sie den Listener erstellt haben, müssen Sie ihn der Listenansicht hinzufügen.

        Hinzufügen des Listeners zur Listenansicht
        ListView listView = (ListView)findViewById(R.id.list_options);
        listView.setOnItemClickListener(itemClickListener);

Hier ist der vollständige Code für kontextbezogen …

Paket eu.kio.starbuzz;

importieren android.app.Activity;
importieren android.os.Bundle;
importieren android.content.Intent;
importieren android.widget.AdapterView;
importieren android.widget.ListView;
importieren android.view.View;

TopLevelActivity der öffentlichen Klasse erweitert die Aktivität

    @Override
    geschützte void onCreate(Bundle savedInstanceState)
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_top_level);
        /*Erstellen eines OnItemClickListeners
        * OnItemClickListener ist eine geschachtelte Klasse innerhalb der AdapterView-Klasse.
        * Eine ListView ist eine Unterklasse von AdapterView.
        * */
        AdapterView.OnItemClickListener itemClickListener = neuer AdapterView.OnItemClickListener()
            /*
            * Die Ansicht, auf die geklickt wurde (in diesem Fall die Listenansicht)
            * Diese Parameter geben Ihnen Informationen darüber, welches Element in der Listenansicht angeklickt wurde,
            * wie die Elementansicht und ihre Position*/
            public void onItemClick(AdapterView<?> </?> listView,View itemView,int position,long id)
                if(Position == 0)
                    Absicht = neue Absicht(TopLevelActivity.this, DrinkCategoryActivity.class);
                            startActivity(intent);
                }
            }
        } ;

        Hinzufügen des Listeners zur Listenansicht
        ListView listView = (ListView)findViewById(R.id.list_options);
        listView.setOnItemClickListener(itemClickListener);
    }
}

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert