Android UI测试-在列表视图中选中复选框
我正在用DialogFragment中的标题和复选框填充listView 问题:在这种布局下,我如何让浓缩咖啡检查前几个项目,然后验证它们是否已检查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<
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" />