2017-07-08 2 views
-1

Hey stackoverflow community,Wie konvertiert man eine Textview-Array-Liste in ein Hashset?

ich möchte eine Arraylist von Textviews über gemeinsame Voreinstellungen an eine andere Aktivität senden, also habe ich versucht, meine Liste in eine HashSet zu konvertieren.

Dies wird nicht akzeptiert:

public List<TextView> FavDishes = new ArrayList<TextView>(); 

. . . FavDishes = neue ArrayList <>(); FavDishes.add (eingabe);

 **Set<String> taskSet = new HashSet<String>(FavDishes);** 
     PreferenceManager.getDefaultSharedPreferences(context) 
       .edit() 
       .putStringSet("Data", taskSet) 
       .apply(); 

Es sagt mir:

Wie würden Sie dieses Problem lösen "kann nicht Konstruktor HashSet auf Android-Widget Textview lösen"?

Danke für Ihre Zeit.

+0

In einem ersten Platz, warum wollen Sie das tun? –

+0

Meine App ist über eine Mensa. Ich möchte, dass der Benutzer Gerichte zu einer "Lieblingsgerichte" Liste hinzufügen kann. Während er also nach unten scrollt und auf ein Gericht klickt, kann er dort durch einen Button auswählen: "Zu Lieblingsgerichten hinzufügen" wird über einen "Zu Lieblingsgerichten" Button mit der Liste "Lieblingsgerichte" verknüpft. Auf der Aktivität "Lieblingsgerichte" sieht er die bereits hinzugefügten Gerichte. – Marius

Antwort

0

Iterieren Sie über das FavDishes-Array, um die TextView-Werte als Zeichenfolge abzurufen und sie in einem Array zu speichern. Übergeben Sie dieses Array dann an Ihren Taskset anstelle von FavDishes.

-Code wird so etwas wie:

List<TextView> FavDishes = new ArrayList<TextView>(); 
    FavDishes.add(fav1TV); 
    FavDishes.add(fav2TV); 
    FavDishes.add(fav3TV); 


ArrayList<String> FavDishesString = new ArrayList<String>(); 

    for (TextView FavDish : FavDishes){ 
     FavDishesString.add(FavDish.getText().toString());  
    } 

    Set<String> taskSet = new HashSet<String>(FavDishesString); 

Hilfreiche Link zu Wegen Arraylist iterieren:

https://crunchify.com/how-to-iterate-through-java-list-4-way-to-iterate-through-loop/

+0

Danke! Klingt nach einer guten Lösung, könnten Sie bitte einen Beispielcode schreiben, damit ich Ihren Rat besser verstehe und umsetze? – Marius

+0

Sorry, kurz vor dem BBQ als Mittagszeit hier zu starten kann so nicht im Moment, aber ich könnte wieder darauf zurückkommen, wenn niemand sonst Posts. – BusinessPlanQuickBuilder

+0

großartig! beeile dich nicht. Ich habe das versucht, wenn (v == speichern) { FavDishes.add (eingabe); für (int i = 0; i <4; i ++) { } JSONArray jsArray = neues JSONArray (FavDishes); editor.putString ("jsondata", jsArray.toString()); editor.commit(); jetzt, wenn ich zu der Aktivität gehe, wo die "eingabe" TextView List hinzugefügt werden soll, gibt es "null" zurück, weißt du einen Grund dafür? ^^ genieß dein BBQ! – Marius

Verwandte Themen