2014-06-06 19 views
6

Espresso kullanarak sayı seçiciyi otomatikleştirme. Espresso kullanarak timePicker'da belirli bir zaman ayarlamak istiyorum.Espresso kullanarak android'de sayı seçiciyi otomatikleştirme

public static ViewAction setTime(final int hour, final int minute) { 
     return new ViewAction() { 
      @Override 
      public void perform(UiController uiController, View view) { 
       TimePicker tp = (TimePicker) view; 
       tp.setCurrentHour(hour); 
       tp.setCurrentMinute(minute) 
      } 
      @Override 
      public String getDescription() { 
       return "Set the passed time into the TimePicker"; 
      } 
      @Override 
      public Matcher<View> getConstraints() { 
       return ViewMatchers.isAssignableFrom(TimePicker.class); 
      } 
     }; 
    } 
: Eğer ViewInteraction nesnesi sahip olduktan sonra

onView(withClassName(Matchers.equalTo(TimePicker.class.getName()))); 

bunu şu şekilde bir ViewAction tanımlanması ve kullanımı ile ilgili bir değer ayarlayabilirsiniz:

+0

Yardım için daha fazla ayrıntıya ihtiyacımız var. Şimdiye kadar neler yaptığınızı, nereye takıldığınızı ve ilgili kodu sağladığınızı söyleyin. – Maxwell

+0

@Maxwell Espresso kullanıyorum ve zaman ayarlayıcıdan zaman seçmek istiyorum. Bir numara seçmek için numara seçiciyi kaydırmak istiyorum. Numara seçiciyi tıklayabilir ve seçili sayı seçicinin metnini düzenleyebilirim. Aşağıda kullandığım kod: Pranit

cevap

14

basitçe kullanabilirsiniz sınıfsal adıyla bir görünümü eşleştirmek için
+0

Bu iyi çalışıyor, ancak bazı sebeplerden dolayı değişmiş dinleyiciler değişmedi mi? –

+0

@JoeMaher, tetikleyici değişiklik dinleyicisi hakkında bir çözüm buldunuz mu? – Sheychan

+0

@JoeMaher evet, dinleyiciyi değiştirmek benim için de değil. Bu konuda herhangi bir bulgu var mı? – user1777136

7

Maç görünümü ve ardından eylemi gerçekleştirmek:

ViewInteraction numPicker = onView(withClassName(Matchers.equalTo(NumberPicker.class.getName()))); 
numPicker.perform(setNumber(1)); 

ayarlamak için bir ViewAction oluştur sayı:

public static ViewAction setNumber(final int num) { 
    return new ViewAction() { 
     @Override 
     public void perform(UiController uiController, View view) { 
      NumberPicker np = (NumberPicker) view; 
      np.setValue(num); 

     } 

     @Override 
     public String getDescription() { 
      return "Set the passed number into the NumberPicker"; 
     } 

     @Override 
     public Matcher<View> getConstraints() { 
      return ViewMatchers.isAssignableFrom(NumberPicker.class); 
     } 
    }; 
}