Weitergabe von RecyclerView CardView Geklickte Artikeldaten an Aktivität

8

Ich habe eine Frage zum Weitergeben von angeklickten Kartenansichtsdaten an Aktivitäten und hier die ganze Geschichte:

  1. Ich habe eine Aktivität namens "Details", die 2 TextViews im Layout enthält, Titel & amp; Beschreibung.

  2. Ich habe ein Fragment (tab_1) eingerichtet, das die recyclerview codes und die items enthält, wobei jedes Element folgendes enthält: title & amp; Beschreibung.

Was ich will:

Wenn der Benutzer auf das Element klickt, wird die Aktivität Details geöffnet und der Titel des Layouts Details mit angeklicktem Elementtitel und derselbe für die Beschreibung geändert.

Ich habe versucht, die andere Aktivität als Beispiel zu erstellen, und habe die Absicht, sie zu starten, plus "addOnTouchlistener" dank Stackoverflow hinzugefügt, ich habe den Weg gefunden, es zu machen.

Also, wie kann ich das lebendig machen? Ich habe viele Möglichkeiten der verfügbaren Antworten auf Stackoverflow ausprobiert, aber alle funktionieren nicht oder nicht im Zusammenhang mit meiner Anfrage.

Hier sind meine Dateien:

itemsdata.java:

%Vor%

tab_1.java (Fragment)

%Vor%

Details Aktivität:

%Vor%

BEARBEITEN: Ich habe es geschafft, ich habe eine Schaltfläche hinzugefügt, die das Fragment öffnet, und die Daten im Adapter übergeben, aber ich will es über tab_1.java, nicht den Adapter, ich meine, ich möchte klicken das Element, um das Fragment zu öffnen, nicht auf einer Schaltfläche, hier ein Snap aus meinem Adapter-Code (ich habe es in OnBindViewHolder hinzugefügt)

Ich habe ein OnClick eingerichtet und das Vew.setOnClick ..etc implementiert, aber wenn ich auf das Element klicke, passiert nichts.

%Vor%     
Jaeger 22.12.2015, 01:19
quelle

5 Antworten

3

Erstellen Sie einen Interface in Ihrem Adapter, der methods enthält. Und während Sie Ihren Adapter implementieren, werden diese Methoden in Ihrer Aktivität implementiert und Sie können die gewünschten Aktionen ausführen.

%Vor%     
Vipul Asri 22.12.2015 11:59
quelle
1

Sie können dies auf Ihrem onItemClick () versuchen

Intent i = new Intent(view.getContext(), DetailsActivity.class); i.putExtra("title", yourTitle); i.putExtra("description", yourDescription); view.getContext().startActivity(i);

und wenn Sie in Ihrer DetailActivity oncreate sind, tun Sie dies

String title = getIntent().getStringExtra("title"); String description = getIntent().getStringExtra("description");

, damit Sie Titel und Beschreibung an DetailActivity

übergeben können     
chichiangho 22.12.2015 01:39
quelle
1

Als Erstes machen Sie Ihr "itemsdata" -Objekt, um Parcelable zu implementieren. Sie können es hier überprüfen. In Ihrer onItemClick-Methode übergeben Sie das Objekt mithilfe von intent.putExtra an Ihre Details-Aktivität ("key", listOfDataItems.get (position)); In Ihrer DetailsActivity können Sie Ihr benutzerdefiniertes Objekt mit getParcelable ("key")

abrufen     
Stefan 22.12.2015 06:54
quelle
1

Alle oben genannten Methoden haben funktioniert, aber ein bisschen lang, also hat diese für mich funktioniert:

%Vor%

Und in Details.java:

%Vor%     
Jaeger 22.12.2015 12:44
quelle
0

IMO, Sie implementieren setOnClickListener in Adapter von RecyclerView . Sie können auf meinen folgenden Beispielcode verweisen und dann seine Logik auf Ihren Code anwenden. Hoffe es hilft!

%Vor%     
BNK 22.12.2015 01:40
quelle