Werte von Dropdown auswählen, im ListView ausgeben lassen

  • Antworten:2
azubi2015
  • Forum-Beiträge: 11

09.10.2016, 20:20:08 via Website

Hallo, ich habe wieder eine Frage. Wenn man einen Wert in die ListView von Datenbank ausgeben möchte, wie macht man das? Ich habe eine Spinner und ListView. In dem dropdown sind Werte, ich möchte einen auswählen und anschließend in ListView anzeigen lassen.

In EditText kann ich Namen schreiben die dann in der Spinner aufgelistet sind. Parallel füge ich in zweiten EditText Beschreibung zur der Person. Mit einem Button Klick kann ich Daten in der Datenbank speichern. Wenn ich von dropdown einen auswähle, soll in ListView die Beschreibung ausgegeben werden.

hier Kode:

    public void loadSpinnerData() {
    // database handler
    DatabaseHandler db = new DatabaseHandler(getApplicationContext());

    // Spinner Drop down elements
    lables = db.getAllLabels();

    // Creating adapter for spinner
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, lables);

    // Drop down layout style - list view with radio button
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    // attaching data adapter to spinner
    spinner.setAdapter(dataAdapter);
}

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    // On selecting a spinner item

    // String label = parent.getItemAtPosition(position).toString();

    // Showing selected spinner item
    Toast.makeText(parent.getContext(), "You selected: " + label, Toast.LENGTH_LONG).show();

    if (spinner.getSelectedItemPosition() == 0) {
    }
    listView.setAdapter();

    if (spinner.getSelectedItemPosition() == 1) {
    }
    if (spinner.getSelectedItemPosition() == 2) {
    }
}

Danke schön

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

09.10.2016, 20:48:42 via Website

Hallo azubi2015,
Warum muss der Text in einer ListView stehen?
So wie ich das verstanden habe, kann ein Spinner eintrag auch nur eine Beschreibung haben, eine ListView macht nur dann Sinn wenn du mehrere Elemente sprich mehrere Beschreibungen dazu anzeigen möchtest.
Das nur als Tipp, da es mit TextView relativ einfach geht.

Du musst jetzt erstmal dein Datenarray (StringArray) für deine Beschreibung erzeugen, wäre in deinem Fall ein String Array mit einem Element.
Dieses kann dan verwendet werden un einen ArrayAdapter zu initialisieren und diesen kannst du dann auf die ListView mit setAdapter setzen.

Dein Ansatz mit der Fallunterscheidung bei selectedItem und den ifs würde ich lassen, da es sonst nur für eine begrenze Anzahl an Elementen geht.
Du musst deine Beschreibung über die aktuelle Position oder einen anderen Key laden können.
Dann kannst du im selectItem auch deine ListView immer aktualisieren, aber wie gesagt, bei einem Element/ein String würde ich vereinfacht eine TextView nehmen (vorausgesetzt du brauchst die Liste auch nicht für später)

— geändert am 09.10.2016, 20:48:56

LG Pascal //It's not a bug, it's a feature. :) ;)

swa00

Antworten
azubi2015
  • Forum-Beiträge: 11

09.10.2016, 21:31:48 via Website

Hallo,
ich denke das war mein Fehler mit ListView. Beschreibung zu jeden Personen kann auch in der TextView angezeigt werden.

Antworten