2017-02-10 3 views
5

J'ai méthode, où je clique sur la position de mon recyclerView:texte Vérifier la position dans recycleur

Espresso.onView(ViewMatchers.withId(R.id.recyclerView)) 
     .perform(RecyclerViewActions.actionOnItemAtPosition<CurrencySelectorItemHolder>(1, ViewActions.click())) 

Mais comment je peux vérifier la position juste mon texte par exemple?

+0

Voulez-vous dire que vous voulez vérifier si le texte affiché pour un certain élément? –

+0

oui, mais dans recyclerView et sur une position spécifique. – Inkognito

Répondre

5

Change "whatever" au texte que vous voulez:

Espresso.onView(withId(R.id.recyclerView)) 
     .perform(RecyclerViewActions.actionOnItem(
       hasDescendant(withText("whatever")), click())); 

MISE À JOUR: ce code pour le contrôle du texte par la position:

onView(withRecyclerView(R.id.recyclerView).atPosition(3)) 
    .check(matches(hasDescendant(withText("whatever")))); 

public static RecyclerViewMatcher withRecyclerView(final int recyclerViewId) { 
    return new RecyclerViewMatcher(recyclerViewId); 
} 

RecyclerViewMatcher.java

+0

désolé mais je veux dire seulement vérifier le texte, je n'ai pas besoin de cliquer sur cet élément. – Inkognito

+0

@Inkognito: J'ai mis à jour ma réponse. Avec –

+0

withRecyclerView - référence non résolue. J'ai besoin de créer cette additionnalité de méthode? – Inkognito

-1

si vous voulez obtenir la position du texte sur lequel vous avez cliqué, vous pouvez utiliser cette méthode dans onClickListener adaptateur

object.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 




       if (object.isChecked() == true) { 
        Log.d("1", "onClick: checked " + getAdapterPosition()); 
        int position = getAdapterPosition(); 


        Class yourObject = yourObject.get(position); 

        yourObject.setChecked(true); 
        selectedyourObjectList.add(todo); 

       } 
       else { 
        if(getAdapterPosition()<selectedyourObjectList.size()) { 
         Log.d("1", "onClick: un checked " + getAdapterPosition()); 
         selectedyourObjectList.remove(getAdapterPosition()); 
         yourObjectList.get(getAdapterPosition()).setChecked(false); 
        } 
       } 
      } 
     }); 

vous pouvez enregistrer dans une variable entière et vous pouvez vérifier le texte sur cette position

Hope this helps

+0

Ce sont des tests d'expresso. – Morozov