gpt4 book ai didi

android - Espresso 为 edittext 设置光标

转载 作者:行者123 更新时间:2023-11-29 18:53:16 25 4
gpt4 key购买 nike

我正在尝试使用 Espresso 测试已经包含一些文本的 EditText。问题是当我使用 typeText() 时,光标被放置在文本中的任意位置。我尝试在使用 typeTextIntoFocusedView 之前执行 click(),但光标有时位于 EditText 的开头。我想知道是否可以在输入文本之前将光标设置在 EditText 的末尾?

最佳答案

更好的方法是按预期的方式使用 Espresso:在 View 匹配器上执行操作。

Kotlin 示例:

class SetEditTextSelectionAction(private val selection: Int) : ViewAction {

override fun getConstraints(): Matcher<View> {
return allOf(isDisplayed(), isAssignableFrom(EditText::class.java))
}

override fun getDescription(): String {
return "set selection to $selection"
}

override fun perform(uiController: UiController, view: View) {
(view as EditText).setSelection(selection)
}
}

示例用法:

onView(withId(R.id.my_text_view).perform(SetEditTextSelectionAction(selection))

与手动执行 findViewById() 相比的一个额外优势是,如果您没有 ID,您可以将其与 withSubString("my text") 等匹配器结合使用的观点。

顺便说一句:要将其更改为文本末尾的设置选择,您只需删除 selection: Int 构造函数参数并将 setSelection(selection) 更改为 setSelection(view.text.lastIndex).

关于android - Espresso 为 edittext 设置光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50458393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com