2015-07-11 6 views
7

Ho un adattatore per la visualizzazione del riciclaggio. Quindi ospita 3 visualizzazioni. Semplicemente ogni vista ha ImageView. Quando un utente fa clic sull'immagine (1 su 3) Crea nuovo intento per utilizzare un'app fotografica e restituirla al chiamante una volta terminata. Il chiamante (l'attività, che ha creato RecyclerView e il suo adattatore) gestisce onActivityResult. Da lì ho bisogno di impostare un'immagine di anteprima che è stata presa in quell'intento menzionato al corrispondente ImageView selezionato.Android: Come accedere al viewholder in posizione (dall'esterno dell'adattatore)

Domanda. Nella mia attività, come faccio a sapere quale imageView (non disponibile 3) da modificare? La mia attività conosce solo la posizione in cui è stato fatto clic su un elemento nella scheda di visualizzazione del riciclatore.

E 'possibile ottenere in qualche modo un riferimento ad una particolare immagine nell'adattatore usando solo la posizione? Quindi qualcosa di simile: dall'attività: adapter.getImageView(position)

EDIT: Quindi la mia soluzione era: stavo tenendo traccia di tutte le ImageViews l'adattatore e conservato la loro ref in ArrayList nel `onBindViewHolder. quindi ora posso solo usare adapter.getImageView (posizione)

+0

valori Come stai assegnando a ogni elemento su adattatore ur? Immagino che tu stia usando un arraylist giusto? Se è così, non puoi provare a fare riferimento all'indice dell'arrayylist con la posizione dell'adattatore? Funziona per me – spongyboss

+0

Ho bisogno di accedere a una vista particolare, non un valore. – vankiz

+0

Il fatto è che l'unico modo per utilizzare l'app fotografica per acquisire l'immagine è creare l'intenzione, non c'è modo di gestire la risposta nell'adattatore attuale. Ho bisogno di accedere a un particolare ImageView nel mio adattatore .... o credo in ogni onBindViewHolder dovrei semplicemente tenere traccia di ImageViews nell'elenco di array .. hmmm – vankiz

risposta

-1

Credo che sia possibile impostareOnClickListener per il tuo ImageView (o per la tua vista di riga) nell'adattatore. Solo fuoco intento da lì.

+1

Sì, lo sto già facendo. Ma per ricevere risposta, devo farlo nell'attività/frammento, che è al di fuori dell'adattatore. Quindi dall'attività/frammento ho bisogno di arrivare alla giusta ImageView nel mio adattatore. Sto usando ArrayList in questo momento e sembra funzionare. – vankiz

+0

sì, se il set di dati del tuo adattatore è ImageView, allora potrebbe funzionare bene alla fine. Ho avuto un problema simile al tuo e ho dovuto creare un'istanza statica di 'onActivityResult' sia nell'adattatore che nell'attività per risolverlo. –

+0

nessun tentativo di dimostrare la tua vista, risposta molto pigra –

-1

è sufficiente aggiungere il metodo all'adattatore per tornare riferimento alla immagine nella posizione desiderata adattatore detiene elenco di oggetti u passare ad esso in modo u può manipolare come desideravi