I have a tests where I test an OnItemSelectedListener on a Spinner. It works great when testing items that is > 0. But it seems like I can't test the first item.
My current implementation that works if I select items with index > 0 looks like this.
final Addpointer addPointer = getActivity();
addPointer.runOnUiThread(new Runnable() {
@Override
public void run() {
EditText address = (EditText) addPointer.findViewById(R.id.address);
address.setText("a");
Spinner spinner = (Spinner) addPointer.findViewById(R.id.intOrHex);
spinner.setSelection(0);
View view = (View) spinner.getChildAt(0);
long id = spinner.getAdapter().getItemId(0);
spinner.performItemClick(view, 0, id);
}
});
What do I need to do to get the test to "select" the first item?
Thanks in advance
Roland
Answer: 1) Rahul garg about setting "animate" was the key to solve the problem. 2) But you can't trigger onSelectionChanged unless the selection actually changed (0 was initial state so I needed to set it to one before I set it back to zero.
more "transparent" way:
*second argument is for selection animation
**this should be called after:
or any kind of methods that is involving Spinner.setSelection() for example :
& for OnItemSelectedListener() not to fire up
Look at the SpinnerTest sample application in the Developer Guide. It actually sends keystrokes to the activity.
Use
The second parameter will actually animate the selection to the 0 index.