2016-04-04 22 views
0

Ich versuche App (Workout-Plan) zu erstellen, die eine Menge von ListView verwenden. Es bedeutet: Wenn ich auf "Create Exercise" klicke -> wird der neue Name der Übung in listView erstellt. Ein ListView für jeden Namen von Übungen. (Ich habe das). Aber wenn ich auf jedes Element dieser ListView klicke, möchte ich neue Serien für jedes Element erstellen. Aber wenn ich auf "Create new series" im ersten Element klicke und wenn ich auf dasselbe klicke, aber in einem zweiten Element, wird es in einem listView erstellt.Benutzerdefinierte ListView Öffnen Sie eine andere benutzerdefinierte ListView

Aber ich möchte dies in einem anderen ListView für jeden Artikel speichern. Ist es möglich? Wie ich derzeit denke, sollte jeder Artikel ein eigenes listView haben.

Eigentlich ist meine Frage: Warum werden jede Serie in einem ListView erstellt? Weil das eine übliche Aktivität für create series ist?

Kann mir jemand helfen, eine Lösung für meinen Fall zu finden?

In diesem Foto zeige ich meine Idee.

enter image description here

Antwort

0

Sie unter Links als Referenzen verwenden können benutzerdefinierte Liste erstellen, wie Sie in Ihrer Frage erwähnt haben:

http://www.pcsalt.com/android/listview-using-baseadapter-android/ http://theopentutorials.com/tutorials/android/listview/android-custom-listview-with-image-and-text-using-baseadapter/

Zuerst müssen Sie eine Aktivität erstellen in Diese Aktivität erstellt eine benutzerdefinierte Listenansicht und in Ihrer benutzerdefinierten Adapterregistrierung klicken Sie auf Listener wie "convertView.setOnClickListener (...) {...} in getView (...) Methode.

In diesem Klick Listener müssen Sie eine andere Aktivität öffnen und einen Wert in putExtra (..) wie startActivity setzen (new Intent (getApplicatonContext(), AnotherActivity.class) .putExtra ("tag", "value")) ;

Und in der zweiten Aktivität müssen Sie diesen Wert mit getIntent() abrufen. GetStringExtra ("tag");

Danach eine weitere benutzerdefinierte Listenansicht erstellen, die auf diesem Wert basiert ..

Hope this helfen Ihnen

+0

Vielen Dank für Ihre Antwort. Aber ich habe Adapter usw. Ich kann Reihen für jeden Namen erstellen, aber diese Reihen werden in nur einer ListView erstellt. Aber ich kann diese Lösung nicht in Ihrer Antwort finden. Sie haben erwähnt, dass ich Activity haben muss, die ein benutzerdefiniertes ListView für jedes Element erstellt? – gryzek

+0

Nein, es ist nicht notwendig, Aktivität für jeden einzelnen Artikel zu erstellen, zum Beispiel habe ich 500 Artikel, so dass es nicht möglich ist, 500 Aktivitäten überhaupt zu erstellen. Sie müssen nur eine Aktivität erstellen und den Wert eines bestimmten Elements in dieser Aktivität übergeben. Die Listenansicht füllt die Daten entsprechend dem Wert dieses Elements, sodass Ihre Arbeit mit 2-3 Bildschirmen endet. Sie können die Listenansicht der zweiten Aktivität auch mit notifyDatasetChanged(); –

+0

Sie können diese Daten auch aus der Datenbank entsprechend dem Wert des Elements festlegen. –

1

Keine Notwendigkeit, eine neue Listenansicht für jeden ist Einzelteil Sie eine Tabelle erstellen empfehlen zu schaffen, in Ihre db und abrufen Sie Elemente auf Ihre Bedürfnisse und füllen Sie die Listenansicht auf Element klicken Sie auf Ihre Listenansicht.

+0

Vielen Dank für Ihre Antwort. Aber wenn ich eine Tabelle erstellen, d. H. Mit 10 Arten von Übungen, und jeder Typ hat, d. H. 10 Namen, und jeder Name hat 10 Serien. Das möchte ich bauen. Aber wie kann ich das mit einem Tisch machen? Zum Beispiel habe ich eine Tabelle, und in dieser Tabelle kann ich (Tabelle von Typen) ItemOnClick machen und es ruft in eine andere Tabelle mit Namen auf und eine andere Tabelle ruft listView auf? – gryzek

+0

Erstellen Sie separate Tabelle für Übung, Name, Serie verwenden Sie dann Joins, um gewünschte Ergebnisse zu erhalten – Karthik

+0

Wie sehen Sie das? Es bedeutet, dass ich Übung, Name, Reihe schreiben und dieses in eine Tabelle setzen kann? Aber wie kann ich einer Reihe von Serien beitreten? Es sollte in einer anderen bestimmten Liste sein? Haben Sie eine Erklärung, weil ich das nicht verstehen kann? Danke für die Hilfe. – gryzek

Verwandte Themen