2016-03-18 3 views
0

Momentan entwickle ich eine Ereignis-App und meine Ereignisse werden in Kartenansichten in einer Recycler-Ansicht angezeigt. Wenn ich eine Kartenansicht drücke, wird eine Aktivität geöffnet, um weitere Details zu diesem bestimmten Ereignis anzuzeigen . jetzt das Problem, das ich gegenüberstelle, ist, wie man diese Informationen für dieses Ereignis erhält und sie in die Tätigkeit einsetzt, und es gibt andere Infos, die ich von der analysierenden Datenbank erhalten muss. die Kartenansicht enthält nur mehrere.Informationen aus angeklicktem cardview in eine Aktivität importieren

wenn jemand helfen kann, und danke im voraus.

hier ist meine EventAdapter Klasse

public class EventAdapter erweitert RecyclerView.Adapter {

private TextView eventName; 
@NonNull 
private final Context context; 
@NonNull 
private final List<Events> eventsList; 

public EventAdapter(@NonNull Context context,@NonNull List<Events> eventsList) { 
    this.context = context; 
    this.eventsList = eventsList; 
} 

@Override 
public EventViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.event_item_card_layout,parent,false); 
    return new EventViewHolder(view); 
} 

@Override 
public void onBindViewHolder(final EventViewHolder holder, final int position) { 
    final Events events = eventsList.get(position); 

    holder.locationText.setText(events.getEventCity()); 
    if (!events.getEventTickets()) { 
     holder.costText.setText("Free"); 
    } else { 
     holder.costText.setText(String.format("%.2f", events.getTicketPrice())); 
    } 


    holder.mainCardLayout.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      eventName = (TextView) view.findViewById(R.id.eventview_name); 
      eventName.setText(events.getEventName()); //doesn't work 
      view.getContext().startActivity(new Intent(context, EventActivity.class)); 
     } 
    }); 

Antwort

1

In Ihrem onClick() Methode, um die view.getContext().startActivity(new Intent(context, EventActivity.class));

mit den folgenden Zeilen Zeile:

Intent i=new Intent(context, EventActivity.class); 

//put extras on the intent 


i.putExtra("var",myVar); //where myVar is a variable that you would like to pass to the activity. 

view.getContext().startActivity(i); 

nun auf der EventActivity innerhalb des

onCreate() 

Verfahren Sie wie folgt vor die Variable mit der Taste "var" abzurufen:

Intent intent = getIntent(); 

String myVar = intent.getStringExtra("var"); 

Sie alles passieren kann, String, int, bool etc. Als ein Beispiel, ich habe String benutzt.

+0

Vielen Dank Freund !! es hat perfekt funktioniert –

Verwandte Themen