Dinamik olarak oluşturulmuş bir Spinner test etmeye çalışıyorum. Spinner'ı tıklayabiliyorum ama sonra verilen bir metinle listeden bir seçenek seçmem gerekiyor (Ben bir hiyerarşik görüntüleyiciden bir PopupWindow'un gösterildiğini öğrendim fakat ekran dışında gerekli olan metne ulaşamıyorum) . spinner bükücüsünde, (kod aşağıda) özel nesneler ArrayAdapter,espresso dinamik çevirici testi
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Spinner mySpinner = (Spinner) findViewById(R.id.my_spinner);
List<MyValue> list = Arrays.asList(
new MyValue("One", "1"),
new MyValue("Two", "2"),
new MyValue("Three", "3"),
new MyValue("Four", "4"),
new MyValue("Five", "5"),
new MyValue("Six", "6"),
new MyValue("Seven", "7"),
new MyValue("Eight", "8"),
new MyValue("Nine", "9"),
new MyValue("Ten", "10"),
new MyValue("Eleven", "11"),
new MyValue("Twelve", "12"),
new MyValue("Thirteen", "13"),
new MyValue("Fourteen", "14"),
new MyValue("Fifteen", "15"),
new MyValue("Sixteen", "16"),
new MyValue("Seventeen", "17"),
new MyValue("Eighteen", "18"),
new MyValue("Nineteen", "19"),
new MyValue("Twenty", "20"),
new MyValue("Twenty One", "21")
);
final ArrayAdapter<MyValue> adapter = new ArrayAdapter<>(this,
R.layout.dropdown_selected_item,
list);
mySpinner.setAdapter(adapter);
mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Log.d("MySpinnerTest", "current = " + adapter.getItem(position));
}
@Override
public void onNothingSelected(AdapterView<?> parent) {}
});
}
public class MyValue {
String name;
String code;
public MyValue(String name, String code) {
this.name = name;
this.code = code;
}
@Override
public String toString() {
return name;
}
}
}
Ben onData(withSpinnerText("Twenty")).perform(click())
ile çalıştı ama bir PerformException almak ve belirli bir metne dayalı doğru bir görünümünü maç için başka nasıl olduğunu bulmaya çalıştılar kullanır popupwindow ama bunu nasıl yapacağını anlayamadım.
Herhangi bir yardım büyük memnuniyetle karşılanacaktır.
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
SpinnerText eşleştiricisi ile birlikte gördüğünüz bir özel durum istisnası eklemek mümkün mü? –