Probleme mit Spinner + Textfeldeingabe

  • Antworten:14
  • Bentwortet
Genetix x
  • Forum-Beiträge: 59

06.06.2017, 20:00:23 via Website

Hallo,
ich weiß jetzt nicht genau ob ich hier richtig bin, aber ich habe Probleme mit der Durchführung für einen Spinner. Der Plan ist einen Spinner mit Texteingabe zu haben sprich man hat zum einen ein Textfeld wo man zb den Buchstaben "E" eingibt und darunter werden alle Begriffe sortiert die mit "E" anfangen oder die Buchstaben "Ei" und darunter alle Begriffe die mit "Ei" anfangen. Zusätzlich sollte es aber auch möglich sein ohne Eingabe im Spinnermenü zu suchen.

Ein Zusatz wäre dann das wenn man z.b. den Begriff "Afrika" auswählt, der dann über dem Spinner erscheint und gespeichert wird. Wenn man jetzt zusätzlich zu "Afrika" den Begriff "China" auswählt so erscheint dieser mit dem Begriff "Afrika" zusammen über dem Spinner. Wenn man nun auf einen Suchen Button klickt sollten dann z.b. Reiseziele gesucht werden die entweder eine der beiden Begriffe als Tag hat oder beide in Kombination.

Leider komm ich bei den Thema so gut wie gar nicht weiter.

Ich hoffe auch ich konnte meine Vorstellungen halbwegs erklären und bedanke mich im Vorfeld für jede Hilfe :)

Antworten
swa00
  • Forum-Beiträge: 3.704

06.06.2017, 22:12:55 via Website

Hallo Genetix,

schau Dir mal AppCompatAutoCompleteTextView - da ist des Rätsels Lösung

Liebe Grüße - Stefan
[ App - Entwicklung ]

Genetix x

Antworten
Genetix x
  • Forum-Beiträge: 59

07.06.2017, 16:29:12 via Website

Ich bin noch relativ unerfahren in Android Studio und hab mir das angeguckt aber weiß nicht so richtig wie mir das weiter hilft.

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

07.06.2017, 18:03:09 via Website

Stefan wollte dir damit ein Stichwort geben, nach dem du dich besser informieren kannst.
Dabei hättest du z.b. hierrauf stoßen können:
http://www.journaldev.com/9574/android-autocompletetextview-example-tutorial
Ist jetzt keine AppCompat View aber für den Anfang sollte das auch reichen.

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

Genetix xswa00

Antworten
Genetix x
  • Forum-Beiträge: 59

07.06.2017, 21:37:34 via Website

Ok danke aber in dem Fall fehlt ja der Spinner oder übersehe ich da was?

Und wie könnte man den Zusatz umsetzen?

Antworten
swa00
  • Forum-Beiträge: 3.704

07.06.2017, 22:02:18 via Website

Hallo Genetix,

für dein Vorhaben musst du Dich von deinem Spinner trennen.
Ein Spinner zeigt nur statisch den aktuellen Inhalt beim Aufklappen an .

Ergo musst du coden - z.B. nach Pascals Beispiel

— geändert am 07.06.2017, 22:04:56

Liebe Grüße - Stefan
[ App - Entwicklung ]

Genetix xPascal P.

Antworten
Genetix x
  • Forum-Beiträge: 59

07.06.2017, 22:05:55 via Website

Halle swa00,

danke für deine Hilfe bis jetzt :). Hatte halt die Idee mit dem Spinner weil ich sowas in der Art schon gesehen habe.
Sollte man dann doch den Spinner nehmen wie schafft man es, dass beim Auswählen eines Landes z.b. das Land dann über dem Spinner erscheint und beim Auswählen eines 2. Landes dieses ebenfalls oben aufgelistet wird und die Suche dann die beiden Begriffe nimmt und nach denen in Kombination sucht?

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

07.06.2017, 22:11:37 via App

Das ist dann nur noch Code sache.

Wenn du beides gewählt hast, brauchst du einen Suchalgorithmus der in deinen bestehenden Sucht.
Dabei können wir dir aber nur Helfen, wenn wir wissen, wie du deine Daten gespeichert hast z.b. in einer DB?

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

Genetix xswa00

Antworten
Genetix x
  • Forum-Beiträge: 59

08.06.2017, 16:49:49 via Website

Würden dann entweder Daten aus einer DB sein oder von Webseiten falls das geht.

Aber erstmal brauch ich ja das allgemeine Layout mit dem Spinner und so :)

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

08.06.2017, 17:56:08 via App

Nein zuerst mal brauchst du einen Plan und eine Datenstruktur. Das Programm ergibt sich dann daraus.

Man fängt nicht erst mit dem Layout an und überlegt dann welches Datenmodell könnte dazu passen...

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

Genetix xswa00

Antworten
Genetix x
  • Forum-Beiträge: 59

11.06.2017, 00:30:43 via Website

Jetzt hab ich ein wenig rumprobiert und es scheitert praktisch an den Transitions um genau zu sein bei dem code hier

@Override
public Window getWindow() {
return super.getWindow();
getWindow().setEnterTransition(new Slide());
getWindow().setExitTransition(new Slide());
getWindow().setSharedElementEnterTransition(new Slide());
getWindow().setSharedElementExitTransition(new Slide());
}
}

Bei der 2. Zeile gibt es ein Fehler egal was ich tue. Wenn sie drin ist erscheint ein Fehler bei Zeile 3 "unreachable Statement". Nehm ich sie raus meldet er "Method "getWindow()" recurses infinitely". Und versuch ich was an der Zeile an sich zu ändern meldet er immer "Incompatible Types"

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

11.06.2017, 09:03:54 via Website

Naja schau dir deinen Code mal richtig an:

  1. Zeile der Methode:
    return super.getWindow();
    Damit gehst du schon raus und der rest ist "unreachable"

  2. Rekursion:
    Du rufst in der Methode getWindow() wieder getWindow auf, was aufrufe auf sich selbst sind und in einer Endlosschleife endet.
    Wenn dann musst du überall super.getWindow verwenden.

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

Genetix x

Antworten
Genetix x
  • Forum-Beiträge: 59

11.06.2017, 14:28:53 via Website

Oke das hat geholfen vielen danke :) Man muss aber dazu sagen, dass sowas leider in den Tutorials kaum bis gar nicht erwähnt. Meistens wird nicht erklärt wie man den Code richtig einsetzt.

Darf ich mal ganz dumm fragen wie ich jetzt als Laie selber raus bekommen hätte, dass vor jeder Zeile super.getWindow kommt?

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

11.06.2017, 14:35:10 via Website

Naja wenn man richtig programmiert, sollte man durch die Grundlagen aus dem Modus "Laie" sein herauskommen ;)
Das bedarf allerdings einiger Übung.

Herausbekommen hättest du das z.b. durch den Fakt, dass der Rekursions Error nur bei den Zeilen da steht die du reingechrieben hast, jedoch nicht beim return von super.getWindow.
Zudem sollte man durch die Grundlagen wissen, dass man eine Methode in sich selbst aufrufen kann (hast du ja hier getan), indem man die Methode mit namen aufruft. Da es hier in deiner Klasse zufällig den gleichen Namen hat, ist dir das wahrscheinlich entgangen.

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

swa00Genetix x

Antworten
Genetix x
  • Forum-Beiträge: 59

18.06.2017, 11:58:54 via Website

Ich bin erneut auf ein Problem gestoßen deswegen dachte ich mir schreib ich es hier mit dazu, weil es indirekt mit dem Thema zu tun hat. Und zwar habe ich in die values.xml eine Zeile rein geschrieben, welche sich jetzt nicht mehr löschen lässt.

<style name="button" parent="@android:style/Widget.Button">
    <item name="com.my.package:font">fonts/copperplate_gothic_light.TTF</item>
</style>

Immer wenn ich diese Zeile lösche dann schreibt sie sich wieder neu wenn ich das Projekt starte.


Edit by Mod Ludy:

Lösung: https://www.nextpit.de/forum/747218/kann-zeile-in-values-xml-nicht-loeschen

— geändert am 18.06.2017, 12:53:44 durch Moderator

Antworten