0

J'ai un recylerview dans mon application, je suis en mesure d'obtenir les positions de chaque article, cependant, je ne suis pas sûr de savoir comment obtenir le contexte de la position de recylerview;Obtenir le contexte de l'article recylerview au lieu de sa position android

mRecyclerView.addOnItemTouchListener(
      new RecyclerItemClickListener(getActivity(), new RecyclerItemClickListener.OnItemClickListener() { 

       @Override 
       public void onItemClick(View view, int position) { 
        Snackbar.make(view, "clicked" + " " + position, Snackbar.LENGTH_LONG).setAction("Action", null).show(); 
       } 
      }) 
    ); 

De plus, la structure de chaque élément/colonne contient un textView auquel j'ajoute des données comme celle-ci;

list.add(new itemtoadd("John Smith" + "\nMale" + "\nSingle”)); 

Ce que je veux faire est parce que je n'ai qu'un textview contient 3 ensemble de données Nom + sexe + statut, tout en obtenant le contexte de la position que je voudrais obtenir seulement 1 morceau de données de celui-ci, par exemple le nom de la personne.

EDIT:

dès maintenant le code que je l'ai écrit obtient la position de l'élément de recylerview par exemple, il dira cliquée 1, ce que je veux faire est au lieu de dire cliquée 1, je le veux pour obtenir le contexte de la position 1 par exemple, dans ce cas obtenir «John Smith, mâle, unique»

Ce que je veux dire est, disons par exemple que j'ai ces données dans mon recylerview;

list.add(new itemtoadd("John Smith0" + "\nMale0" + "\nSingle0”)); 
list.add(new itemtoadd("John Smith1" + "\nMale1" + "\nSingle1”)); 
list.add(new itemtoadd("John Smith1" + "\nMale1" + "\nSingle1”)); 

dans ce cas, les premières données ajouter à mon recylerview serait en position 0, au lieu d'imprimer "la position 0 Je veux obtenir les données dans poition 0, qui dans ce cas serait; John Smith0, Homme0, Célibataire0.

+1

Que voulez-vous dire par «contexte de la position»? Où en avez-vous besoin? – Kelevandos

+0

Quels sont vos besoins exacts? que voulez-vous dire par contexte à poste? – kiturk3

+0

voir édité s'il vous plaît, si cela n'a toujours pas de sens faites le moi savoir et je vais essayer de l'expliquer mieux – Henry

Répondre

1

Utilisez votre objet modèle itemtoadd pour récupérer vos données, et non le TextView:

@Override 
public void onItemClick(View view, int position) { 

    Snackbar.make(view, "clicked" + " " + position, Snackbar.LENGTH_LONG).setAction("Action", null).show(); 

    itemtoadd yourItem = list.get(position); // here you get your clicked model item 

    // then you can get the String value from your "itemtoadd" model. 
} 

EDIT:

Voici un exemple comment votre modèle itemtoadd peut être:

public class itemtoadd { 

    private String mName; 
    private String mGender; 
    private String mStatus; 


    public itemtoadd(String name, String gender, String status){ 
     mName = name; 
     mGender = gender; 
     mStatus = status; 
    } 

    public String getName(){ 
     return mName; 
    } 

    public String getGender(){ 
     return mGender; 
    } 

    public String getStatus(){ 
     return mStatus; 
    } 

    public String getPersonInformation(){ 
     return getName()+"\n"+getGender()+ "\n"+getStatus(); 
    } 

} 

Avec le cours ci-dessus, vous pouvez obtenir votre name, sexe, statut avec respectivement yourItem.getName(), yourItem.getGender(), yourItem.getStatus().

+0

Salut merci pour la réponse, à quoi se réfère itemtoadd? – Henry

+0

parce que quand j'écris itemtoadd il est impossible de résoudre le symbole itemtoadd – Henry

+0

Dans votre OP, il y a 'list.add (new itemtoadd (" John Smith "+" \ nMale "+" \ nSingle ")', donc je suppose que que vous avez l'objet Model nommé * "itemtoadd" *, n'est-ce pas? – Rami