【发布时间】:2026-01-01 12:25:02
【问题描述】:
目前我有一个具有自动完成文本视图的活动。文本视图中的数据是从数组适配器填充的,我在让我的测试用例按名称单击列表视图元素之一时遇到问题。下面是截图和代码:
// setup ingredient list widget
mFridgeList = (ListView) findViewById(R.id.fridge_list);
mFridgeList.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, FridgesterDB.ingredientsList));
当用户输入文本(例如:tom)时,将出现一个选项列表,用户可以选择这些选项以确认他们的选择。
我觉得我已经尝试了一千种不同的解决方案,但我得到的最一致的错误是:
在视图上执行“加载适配器数据”时出错可从类分配:android.widget.AdapterView 类
我已经尝试使用here建议的解决方案:
onData(hasToString(startsWith("tomato"))).perform(click());
和它的不同变体都无济于事。
这是从 Espresso Recorder 生成的代码,它会导致 NoMatchingViewException:
ViewInteraction appCompatTextView = onView(
allOf(withId(android.R.id.text1), withText("tomato"), isDisplayed()));
appCompatTextView2.perform(click());
NoMatchingViewException:层次结构中没有找到匹配的视图:(id: android:id/text1 和 text: 是“番茄”并显示在屏幕上给用户)
我还看到一些人通过使用 sleeps 来实现这一点,但这对我来说并没有什么不同。有任何想法吗?谢谢
【问题讨论】:
标签: android listview text adapter android-espresso