Android UI测试-在列表视图中选中复选框

Android UI测试-在列表视图中选中复选框,android,android-espresso,Android,Android Espresso,我正在用DialogFragment中的标题和复选框填充listView 问题:在这种布局下,我如何让浓缩咖啡检查前几个项目,然后验证它们是否已检查 private var departments: ArrayList<Department>? = arrayListOf() private inner class DeptAdapter(context: Context?, data: ArrayList<Department>) : ArrayAdapter<

我正在用DialogFragment中的标题和复选框填充listView

问题:在这种布局下,我如何让浓缩咖啡检查前几个项目,然后验证它们是否已检查

private var departments: ArrayList<Department>? = arrayListOf()

private inner class DeptAdapter(context: Context?, data: ArrayList<Department>) : ArrayAdapter<Department>(context!!, 0, data as List<Department>) {

    override fun getView(position: Int, convertView: View?, container: ViewGroup): View {
        var view: View? = convertView
        if (view == null) {
            view = layoutInflater.inflate(android.R.layout.simple_list_item_multiple_choice, container, false)
        }

        val checkedTextView = view?.findViewById<CheckedTextView>(android.R.id.text1)
        checkedTextView?.text = getItem(position)?.name

        checkedTextView?.isChecked = departments?.contains(getItem(position)) ?: false
        checkedTextView?.tag = getItem(position)

        checkedTextView?.setOnClickListener {
            if (checkedTextView.isChecked) {
                checkedTextView.isChecked = false
                departments?.remove(it.tag)
            } else {
                checkedTextView.isChecked = true
                departments?.add(it.tag as Department)
            }
        }
        return view!!
    }

}
私人var部门:ArrayList?=arrayListOf()
私有内部类DeptAdapter(上下文:context?,数据:ArrayList):ArrayAdapter(上下文!!,0,数据为列表){
覆盖视图(位置:Int,convertView:View?,容器:ViewGroup):视图{
变量视图:视图?=转换视图
如果(视图==null){
view=layoutInflater.flate(android.R.layout.simple\u list\u item\u多选,容器,false)
}
val checkedTextView=view?.findViewById(android.R.id.text1)
checkedTextView?.text=getItem(位置)?.name
checkedTextView?.isChecked=部门?.contains(getItem(position))?:false
checkedTextView?.tag=getItem(位置)
checkedTextView?.setOnClickListener{
如果(选中的TextView.isChecked){
checkedTextView.isChecked=false
部门?移除(it.标签)
}否则{
checkedTextView.isChecked=true
部门?.add(it.tag为部门)
}
}
返回视图!!
}
}
简单列表项多项选择的XML如下所示

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/listPreferredItemHeightSmall"
    android:textAppearance="?android:attr/textAppearanceListItemSmall"
    android:gravity="center_vertical"
    android:checkMark="?android:attr/listChoiceIndicatorMultiple"
    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" />
<ListView
        android:id="@+id/departments"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        app:layout_constraintBottom_toTopOf="@+id/cancel"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

包含上述CheckedTextView的ListView如下所示

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/listPreferredItemHeightSmall"
    android:textAppearance="?android:attr/textAppearanceListItemSmall"
    android:gravity="center_vertical"
    android:checkMark="?android:attr/listChoiceIndicatorMultiple"
    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" />
<ListView
        android:id="@+id/departments"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        app:layout_constraintBottom_toTopOf="@+id/cancel"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />