Кнопка для тоста, когда селектора listView нет. Android - PullRequest
0 голосов
/ 26 июня 2018

Мне кажется, я не дал понять, чего я пытаюсь достичь.

У меня есть просмотр списка:

    <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, который выделяет элемент, выбранный в списке после щелчка.

Теперь я пытаюсь запрограммировать кнопку для отображения всплывающего сообщения, когда в этом списке1 нет селектора (когда там не было выделено ни одного элемента и он выделен серым цветом), и чтобы сделать видимость макета веб-сайта видимой. когда это произойдет.

что-то вроде:

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

заранее благодарю за поддержку

Привет

1 Ответ

0 голосов
/ 26 июня 2018

Я бы создал 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
    }
}
...