首页 > 解决方案 > 当 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

预先感谢您对我们的支持

问候

标签: androidlistviewkotlinselectortoast

解决方案


我会创建一个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
    }
}

推荐阅读