Projekt-Anfragen: Tel: 07022/9319004 info@CodeDocu.de Software Entwicklung in C# WPF Asp.Net Core Vba Excel Word SQL-Server EF Linq, UWP Net
#

Android Code: Spinner Eine einfache DropDown-Liste erstellen
 
Dieses Beispiel zeigt eine einfache DropDown-Liste in Android Java, welche mehrere Werte enthält und auf das Auswählen einer Zeile reagiert.
Ein Dropdown Auswahlelement in Android heißt: Spinner und wird mittels eines Adapters geladen mit String-Werten oder mit XML Listen.
Dieses Beispiel lädt eine Liste an String Texten, welche in einem String-Array gespeichert sind.
Beim Auswählen einer Zeile wird das Ereignis onItemSelected ausgeführt.
 
 
Das Spinner-Element sieht in der Runtime auf einem Android Smartphone wie hier dargestellt aus:

 
Einbau im Design Modus:
Zunächst zieht man aus der Toolbox ein Spinner-Element in die Activity oder in ein Fragment.
Design-Modus der Datei activity_main.xml

Die Activity Datei  sieht dann wie folgt aus und enthält den <Spinner> Block. Damit das Element erkannt wird, muss man eine ID eintragen
android:id="@+id/spinner"
 
Main_Activity.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="de.rue25.demo_spinner_01.MainActivity">

<
TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Demo Spinner1"
android:textSize="18sp"
android:id="@+id/lblTitle"/>

<
Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="44dp"
android:id="@+id/spinner"
android:layout_below="@+id/lblTitle"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"/>
</
RelativeLayout>
 

 
 
 
Werte speichern
Die Werte oder Strings, welche in die Spinner-Liste zur Laufzeit geladen werden sollen, werden in eine separate Resourcen-Datei geladen
Hierzu geht man auf das Verzeichnis Android->app->res->values und klickt mit der rechten Maustaste auf das Context-Menü: New->Values resource file

 
Diese Datei öffnet man und schreibt die Werte im innern des <resources> Bereiches ab durch die Definition eines <string-array>Arrays mit mehreren <item>Werten
 
 
arrays.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
<
string-array name="planets_array">
<
item>Mercury</item>
<
item>Venus</item>
<
item>Earth</item>
<
item>Mars</item>
<
item>Jupiter</item>
<
item>Saturn</item>
<
item>Sun</item>
<
item>Ganimed</item>
</
string-array>
</
resources>
 

 
 
Spinner mit Werten laden und onSelected-Event einbauen
 
Das Spinner-Element wird nicht automatisch durch ein Setup geladen. Man muss es in dem onCreate() Ereignis der Activity laden.
Hierzu füllt man einen ArrayAdapter mit den String-Werten aus dem Array.
Dann weist man den Adapter dem Spinner-Control zu.

Spinner spinner = (Spinner) findViewById(R.id.spinner);

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this,R.array.planets_array, android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

// Apply the adapter to the spinner
spinner.setAdapter(adapter);

spinner.setOnItemSelectedListener(
this);
 

 
 

 
Event zuweisen
 
In diesem Beispiel wird direkt die Activity-Klasse, in der sich das Anzeige-Element befindet mit dem Ereignis beim Auswählen eines Listenelementes erweitert.
Dieses erfolgt dadurch dass man die Klasse mit implements AdapterView.OnItemSelectedListener erweitert.

public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {
 

 
Die Methoden auf die Ereignisse der Spinners werden direkt in die Klasse der Activity geschrieben.

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String sSelected=parent.getItemAtPosition(position).toString();
Toast.makeText(
this,sSelected,Toast.LENGTH_SHORT).show();
}

@Override
public void onNothingSelected(AdapterView<?> parent) {

}

 

 
Das Zuweisen, dass diese Definition von onItemSelected auch zu dem angezeigten Spinner gehört wird mit der folgenden Zeile umgesetzt in der onCreate() Methode.

spinner.setOnItemSelectedListener(this);

 
 
..                                     ..                                     …
 
 
MainActivity.java

package de.rue25.demo_spinner_01;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {



@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.
activity_main);


Spinner spinner = (Spinner) findViewById(R.id.
spinner);

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this,R.array.planets_array, android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

// Apply the adapter to the spinner
spinner.setAdapter(adapter);

spinner.setOnItemSelectedListener(
this);

}


@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String sSelected=parent.getItemAtPosition(position).toString();
Toast.makeText(
this,sSelected,Toast.LENGTH_SHORT).show();
}

@Override
public void onNothingSelected(AdapterView<?> parent) {

}
}

 

 
 
Video Anleitung
 
Mobile
»
Android: Linien zeichnen in Tabellen, Zeilen und Zellen
»
Android RecyclerView: komplettes Code-Beispiel
»
Android Code: Spinner Eine einfache DropDown-Liste erstellen

.

Jobs, Projekte, Angebote für Freiberufler, Selbstständig an Info@CodeDocu.de