@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_code_label_example); // find views mSpinner = (Spinner) findViewById(R.id.spinner); // set adapter mSpinner.setAdapter(CodeLabelAdapter.newInstance(this, OrdinalLabel.values(), true)); mSpinner.setSelection(0, false); // bind event handlers mSpinner.setOnItemSelectedListener(this); }
@Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { if (parent.getId() == R.id.spinner) { OrdinalLabel item = (OrdinalLabel) parent.getItemAtPosition(position); String text = (item != null) ? item.getLabel(getResources()) : "null"; mSnackbarLogic.make(view, text + " is selected.", Snackbar.LENGTH_SHORT).show(); } }
@Test public void clickSpinner() { CodeLabelExampleActivity activity = mActivityTestRule.launchActivity(null); activity.mSnackbarLogic = spy(new MockSnackbarLogic()); for (OrdinalLabel item : OrdinalLabel.values()) { onView(withId(R.id.spinner)).perform(click()); onData(is(item)).perform(click()); Resources res = activity.getResources(); verify(activity.mSnackbarLogic).make(any(View.class), contains(item.getLabel(res)), anyInt()); } } }