在listView中未选择任何项目时吐司

时间:2018-06-25 19:54:58

标签: android listview if-statement kotlin

嗨,我正在努力做到这一点:

         button.setOnClickListener {
            if (list1.choiceMode == android.widget.ListView.CHOICE_MODE_NONE){
                toast("You need to choose an item first")
            }
            else {
                val builder = AlertDialog.Builder(this)
                builder.setTitle("Alert")
                builder.setMessage("This service requires data?")
                builder.setPositiveButton("Yes", { dialogInterface: DialogInterface, i: Int ->
                    ListView.visibility = View.GONE
                    website.visibility = View.VISIBLE
                })
                builder.setNegativeButton("No", { dialogInterface: DialogInterface, i: Int -> })
                builder.show()
            }

        }

我试图在用户按下按钮时显示一条消息,但他没有从列表中选择任何项目。如果一切正常,我希望它可以将listView可见性设置为不可见,并将网站可见性设置为可见。

按下按钮时我得到的只是吐司消息。

已编辑:

    val nameofanimals = arrayOf("cat","dog","parrot")

internal lateinit var adapteranimals: ArrayAdapter<String>

这是我的清单:

val list1 = findViewById(R.id.list1) as 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"
        android:visibility="gone">


    </ListView>

我的适配器:

adapteranimals = ArrayAdapter(
        this@MainActivity,
        R.layout.list1layout,
        nameofanimals)
list1.adapter = adapteranimals

现在,当我没有选择任何猫,狗或鹦鹉时,我需要显示一条祝酒消息,并想将Webviewer和listview布局的可见性设置为可见,而当用户实际选择其中的一个选项时就消失了。我的清单

1 个答案:

答案 0 :(得分:0)

为了使您的项目在列表中可以选择,您需要在列表视图上调用两种关键方法。

button.setOnClickListener之前添加这两行

        list1.setItemsCanFocus(false);
        list1.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

然后在您的onClickListener内执行此操作:

Object selectedObj = list1.getSelectedItem(); 

if (selectedObj == null) {
 showToast();
} else {
 doSomethingElse();
}