Eingabe von Suchkriterien und dere Auflistung

  • 7 Antworten
  • Letztes Antwortdatum
K

kjBulletkj

Neues Mitglied
0
Hallo Leute,

ich bin gerade dabei eine App für einen Lebensmittelshop zu schreiben. Das ganze läuft als Uni-Projekt.

In dieser App soll unter anderem eine verfeinerte Suche angeboten werden (bereits implementiert), mit der man anhand von bestimmten Informationen über ein Rezept und der Eingabe einer Zutat (bzw. Produkts) entsprechende Rezepte angezeigt bekommt.

Mein Problem befindet sich bei der Eingabe der Zutaten. Bisher gibt man in ein entsprechendes Textfeld die Bezeichnung einer Zutat ein und in der Datenbank wird geprüft, ob es Produkte mit ähnlicher Bezeichnung gibt.
Das Problem hierbei ist, dass immer nur ein Produkt eingegeben werden kann.

Gibt man hier z. B. "Quark" ein, erhält man als Ergebnis das Rezept "Käsekuchen".

Ich möchte nun aber erreichen, dass mehrere Zutaten eingegeben werden können und nach mehreren Kriterien gesucht werden kann.

Was ich benötige ist dieses Textfeld mit einem "+" rechts neben dem Eingabefeld.
Drückt man auf das "+", soll der Inhalt des Textfeldes darunter angezeigt werden mit einem "X" neben dem Titel. Bei einem Klick auf das X soll das Suchkriterium wieder gelöscht werden.
Ich hab keine Ahnung wie diese ganze Struktur heißt, daher brauche ich eure Hilfe. Daher weiß ich auch nicht wirklich wonach ich googlen soll. Bisher hab ich nur unnützes Zeug gefunden.

Um es nochmal zu verdeutlichen, was gemeint ist, hier nochmal eine Art "Skizze":

Schritt 1:

|__Bitte geben sie eine Zutat ein___|_+_|

Schritt 2: Eingabe von "Quark"

|__Quark__________________________|_+_|

Schritt 3: Klick auf das "+"

|__Bitte geben sie eine Zutat ein___|_+_|

| Quark |_X_|

Ich hoffe, dass es verständlich ist, was ich meine.

Danke schon mal im Voraus.
 
Danke erstmal für die schnelle Antwort. :thumbsup:

Das geht schon näher in die Richtung, ist aber nicht so ganz, was ich mir vorstelle.

In der Activity, in die diese Struktur rein soll, befinden sich darüber mehrere Möglichkeiten zur Modifikation der Suche, wie RadioButtons, Dropdown-Menüs, und ein Numberpicker. Darunter befindet sich schon der "Suchen"-Button.
Daher wäre ein weiterer Button irgendwie unschön.
Zudem habe ich auf der Activity eine umfassende ScrollView definiert. Ich glaube die stehen im XML in Konflikt miteinander, da die ListView ja ihr eigenes Scrollverfahren hat (jedenfalls wurde mir gestern so ein Fehler angezeigt).

Ich hoffe deswegen, dass es das schon irgendwo vordefiniert gibt. Ich habe diese Struktur auch schon öfter in Apps gesehen.
Man kann sagen, es ähnelt dem markieren bei Facebook. Man sucht dort ja eine Person aus und klickt den Namen an. Diese Person wird dann unten angezeigt und lässt sich auch wieder mit einem Klick auf das kleine "x" entfernen.

Aber der Link den du gepostet hast, hat mich auf die Idee gebracht, das, falls ich nicht fündig werde, selbst zu implementieren, indem ich einfach einen kleinen Button neben das Textfeld setze und die Eingaben dynamisch dadrunter anzeige.
 
Naja irgendwas zum drücken, um das hinzuzufügen brauchst du ja sowieso. Kann ja auch ein drawable sein.
Das mir der listview in scrollview ist auch losbar:
http://nex-otaku-en.blogspot.de/2010/12/android-put-listview-in-scrollview.html?m=1

Wenn ich dich nicht irgendwie falsch verstehe sollte das doch so hinhauen.
Brauchst dann natürlich noch das eigene layout für die list items und musst das eben alles selbst implementieren. Dürfte aber nicht so aufwendig sein. Vielleicht schau ich mir das heute abend mal an, wenn dir das zu viel Arbeit ist :p

Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
 
Das sieht ja sehr gut aus! :)

Hab mir den Link gleich als Bookmark gespeichert. :thumbup:

Da jetzt das mit der ScrollView gelöst ist, ergeben sich plötzlich ganz neue Möglichkeiten. :D

Ich denke, dass ich das so nun hinkriegen könnte.

Danke. :)
 
Dann hau mal in die Tasten.
Mich würde interessieren, wie du das löschen implementierst.
Kannst ja mal eine Rückmeldung geben, wenn es so weit ist ;)

Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
 
Da man keinen Button ans rechte Ende einer ListView einfügen kann, ohne eine eigene ListView zu implementieren, habe ich das Löschen mit einem LongClick realisiert. :)

Ich hab dabei die Activity so ähnlich programmiert, wie im Stackoverflow-Link. Danach habe ich die Utility-Klasse verwendet, wie sie im Blog zu finden war, den du ebenfalls gepostet hast.

Hier der Code für das Löschen:

Code:
private ArrayList<String> datasource;
private ArrayAdapter<String> adapter;

                      ...

public void onCreate(Bundle savedInstanceState){

                      ...
datasource = new ArrayList<String>();

adapter = new ArrayAdapter<String>(this,
                    android.R.layout.simple_list_item_1,
                    datasource);

setListAdapter(adapter);
                      ...

getListView().setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> adapterView, 
                                              View view, 
                                              int i, long l)
{
              String clicked = (String) getListView().getItemAtPosition(i);
              removeIngredient(view, clicked);
}
});
                           ...
}

public void removeIngredient(View view, String clicked)
{
      datasource.remove(clicked);
      adapter.notifyDataSetChanged();
      Utility.setListViewHeightBasedOnChildren(getListView());
}

So lassen sich die Elemente dann auch wieder dynamisch aus der ListView entfernen.
 
So geht es natürlich auch :p

Ich habe mir aus Interesse vorgestern mal so eine Liste geschrieben, also mit eigenem Adapter.
Falls du die nutzen möchtest, findest du das Projekt bei den Codeschnipseln.


Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
 
Zurück
Oben Unten