2016-07-12 11 views
0

Ich versuche, die Anzahl der Elemente mit dem gleichen ridandroid Espresso: Gesamtanzahl der Elemente mit samerid nicht in Adapter Ansicht

die Lösungen zu bekommen hier How to get count of items with same ids which are not in adapter view hilft mir nicht.

static int counter = 0; 
public static Matcher<View> withIdAndDisplayed(final int id) { 
    Checks.checkNotNull(id); 
    return new TypeSafeMatcher<View>() { 
     @Override 
     public void describeTo(Description description) { 
      description.appendText("with item id: " + id); 
     } 

     @Override 
     public boolean matchesSafely(View view) { 
      if ((view.getId() == id) && (view.getGlobalVisibleRect(new Rect()) 
        && withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE).matches(view))){ 
       counter++; 
       return true; 
      } 
      return false; 
     } 
    }; 
} 

Antwort

0

Update:

ich sehe, Sie versuchen, Kind Ansicht Zahl zu erhalten, die keine adapterView ist. Sehen Sie diese ein https://groups.google.com/forum/#!topic/android-test-kit-discuss/avLaBnBWr70

Ursprüngliche Antwort:

Sie RecyclerView verwenden?

Ich habe den untenstehenden Code in meinen Tests verwendet, um die RecyclerView-Größe zu erhalten.

public static Matcher<View> withRecyclerViewSize(final int size) { 
    return new TypeSafeMatcher<View>() { 

     @Override 
     public boolean matchesSafely(final View view) { 
      final int actualListSize = ((RecyclerView) view).getAdapter().getItemCount(); 
      LOGD(TAG, "RecyclerView actual size " + actualListSize); 
      return actualListSize == size; 
     } 

     @Override 
     public void describeTo(final Description description) { 
      description.appendText("RecyclerView should have " + size + " items"); 
     } 
    }; 
} 

Verbrauch: onView(withId(R.id.resource_id)).check(matches(withRecyclerViewSize(expectedSize)));

In diesem Fall resource_id ist RecyclerView.

Hier einige Beispiele: https://gist.github.com/chemouna/00b10369eb1d5b00401b.