So automatisieren Sie Zahlenauswahl mit Espresso. Ich möchte eine bestimmte Zeit im timePicker mit Espresso einstellen.Automatisieren von Zahlenauswahl in Android mit Espresso
Antwort
Um eine Ansicht von seinen Klassennamen übereinstimmen können Sie einfach:
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);
}
};
}
:
onView(withClassName(Matchers.equalTo(TimePicker.class.getName())));
Sobald Sie das ViewInteraction Objekt haben Sie einen Wert auf ihn zu definieren und mit Hilfe einer Viewaction wie folgt einstellen
Das funktioniert gut, aber aus irgendeinem Grund ruft es nicht die Wert geändert Listener? –
@JoeMaher haben Sie eine Umgehungslösung für den nicht auslösenden Change Listener gefunden? – Sheychan
@JoeMaher Ja, Change Listener löst auch nicht für mich aus. Irgendwelche Erkenntnisse dazu? – user1777136
Spiel der Ansicht, und führen Sie dann die Aktion:
ViewInteraction numPicker = onView(withClassName(Matchers.equalTo(NumberPicker.class.getName())));
numPicker.perform(setNumber(1));
eine Viewaction erstellen Sie einstellen Nummer:
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);
}
};
}
Wir brauchen mehr Details zu helfen. Sagen Sie uns, was Sie bisher getan haben, wo Sie stecken bleiben und geben Sie den entsprechenden Code an. – Maxwell
@Maxwell Ich benutze Espresso und möchte die Zeit vom Zeitpicker auswählen. Ich möchte durch die Zahlenauswahl blättern, um eine Nummer auszuwählen. Ich kann auf die Zahlenauswahl klicken und den Text der ausgewählten Zahlenauswahl bearbeiten. Unten ist der Code, den ich verwendet habe:
Pranit