1

我确信有一个简单的解决方案,但我很难用它。我正在尝试使用 setDatePicker 方法更改 DateDialog 上的日期,但我不断收到索引越界错误

solo.clickOnButton(0);
solo.setDatePicker(0, year, month, day);
solo.clickOnButton("Set");

日期选择器是在 onCreateDialog 方法中创建的

    @Override
protected Dialog onCreateDialog(int id) {
    switch (id) {
    case START_DATE_ID:
        return new DatePickerDialog(this, bDateSetListener, bYear, bMonth,
                bDay);
    case END_DATE_ID:
        return new DatePickerDialog(this, eDateSetListener, eYear, eMonth,
                eDay);
    }
    return null;
}

我不断收到的错误是“无效的索引 0,大小 0”。我看不到一种可以存储 DatePickerDialog 并仅设置/获取值的方法。看来你只需要继续创建一个新的。我敢肯定有人有这个工作。谢谢你的帮助。

4

2 回答 2

0

你有没有初始化过bYear、bMonth、bDay?像这样,在调用 DIALOG_ID 之前

    final Calendar c = Calendar.getInstance();
    bYear = c.get(Calendar.YEAR);
    bMonth = c.get(Calendar.MONTH);
    bDay = c.get(Calendar.DAY_OF_MONTH);
于 2012-08-08T02:56:28.347 回答
0

现在我一直在使用robotium,我发现它给你的错误并没有真正的帮助(或者在这种情况下,真正的问题)。我得到的错误实际上与设置 DatePicker 无关。在我的测试代码中,我结束了一个不是测试用例开始活动的活动,它在测试之外工作。在我注意到这一点后,我只是回到了开始活动和过去的测试......这个故事的寓意是 Robotium 错误不是很清楚,您应该寻找其他可能在您的应用程序或流程中出错的事情以减轻奇怪的错误。

于 2012-08-14T13:23:36.657 回答