android - 当 listView 选择器不存在时,按钮来祝酒。安卓
问题描述
我想我还没有明确自己想要达到的目标。
我有一个列表视图:
<ListView
android:id="@+id/list1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:choiceMode="singleChoice"
android:focusable="true"
android:focusableInTouchMode="true"
android:listSelector="@android:color/darker_gray"
android:textSize="10dp"
</ListView>
如您所见,此列表视图包含一个 listSelector,一旦单击,它就会突出显示列表中选定的项目。
现在,我尝试编写一个按钮以在此 list1 上没有选择器时显示 toast 消息(当其中没有项目被选择并以灰色突出显示时)并将网站布局的可见性设置为可见.
就像是:
button1.setOnClickListener {
If (list1.selector == null){
toast("no item selected in list1")
} else {
website.visibility = View.VISIBLE
}
}
以下是我的代码供参考:
val nameofanimals = arrayOf("cat","dog","parrot")
internal lateinit var adapteranimals: ArrayAdapter<String>
我的适配器:
adapteranimals = ArrayAdapter(
this@MainActivity,
R.layout.list1layout,
nameofanimals)
list1.adapter = adapteranimals
预先感谢您对我们的支持
问候
解决方案
我会创建一个Extension
:
fun ListView.hasSelector(): Boolean {
for (i in 0 until this.count) {
if (this.isItemChecked(i))
return true
}
return false
}
然后在中调用它clickEvent
:
button1.setOnClickListener {
If (!list1.hasSelector){
toast("no item selected in list1")
} else {
website.visibility = View.VISIBLE
}
}
推荐阅读
- android - 是否可以链接 WorkManager 定期工作人员?
- algorithm - 算法 - 要获得“令人印象深刻”的数字集,您必须进行多少更改
- java - 模式和匹配器java问题,最后一个元素为空
- c++ - 定位/修复函数显示分布中的错误
- android - 如何从网站深度链接到安卓应用程序
- php - PHP trim() 在未指定时删除 S
- azure - 无法将 Azure 数据工厂配置为从 http 端点获取数据
- swift - 类型擦除用于更复杂的协议
- ios - ios PDFKit 模糊pdf
- javascript - 使用 FusionTables JSON 作为 Chart.js 的输入