How do I click the first item in a spinner using Robotium?

后端 未结 3 1702
误落风尘
误落风尘 2021-01-23 12:08

I am having problems scrolling up in a spinner to select the first item in a Robotium test case. Here is my code:

int pos = solo.getCurrentSpinners().get(0).getS         


        
相关标签:
3条回答
  • 2021-01-23 12:36

    Seems they took those classes out now. Just ran into this myself but found a way to do this properly and generically.

    // 0 is the first spinner in the layout
    View view1 = solo.getView(Spinner.class, 0);
    solo.clickOnView(view1);
    solo.scrollToTop(); // I put this in here so that it always keeps the list at start
    // select the 10th item in the spinner
    solo.clickOnView(solo.getView(TextView.class, 10)); 
    
    0 讨论(0)
  • 2021-01-23 12:36

    are you able just to get the view and call the perform click on it?

    solo.getCurrentSpinners().get(0).performClick()
    
    0 讨论(0)
  • The API to use here with Robotium is rather flaky, so I decided to go down the direct API route:

    instrumentation.runOnMainSync(new Runnable() {
        @Override
        public void run() {
            Spinner spinner = (Spinner) solo.getView(resourceId);
            spinner.setSelection(position, true);
        }
    });
    

    This won't show you the popup of the Spinner, but it will select the desired item.

    0 讨论(0)
提交回复
热议问题