列表视图上的setOnClickListener不工作。

问题描述 投票:0回答:1

我正在构建一个有列表视图的应用程序,在列表视图中,我添加了一个删除项目的按钮,我用sqlite做了一个删除项目的函数。

问题是,当我按下按钮删除项目时,按钮不工作,而且logcat也没有显示任何错误。

列表视图中的项目按钮。

<Button
    android:id="@+id/del_btn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="144dp"
    android:layout_marginTop="68dp"
    android:onClick="delete_item"
  />

移除项目的乐趣。

fun delete_item(view:View){

//delete record
    var del_btn=findViewById<Button>(R.id.del_btn)

    del_btn.setOnClickListener {

        var check_box_id=del_btn.text
        var get_number_only=check_box_id.replace("[^0-9]".toRegex(),"")
        //creating the instance of DatabaseHandler class
        val databaseHandler: DatabaseHandler = DatabaseHandler(this@ListInvests)
        //calling the deleteEmployee method of DatabaseHandler class to delete record
        val status = databaseHandler.deleteEmployee(
            DeleteModelClass(
                Integer.parseInt(get_number_only)

            )
        )
        if (status > -1) {
            Toast.makeText(applicationContext, "record deleted", Toast.LENGTH_LONG).show()
        }


    }

}
android kotlin onclicklistener
1个回答
0
投票

问题是我没有在列表视图中添加监听器。Adatper 所以,我在listview类中添加了监听器,并将findViewById附加到rowview中。

答复 慕克什 解决了这个问题。

 //delete record
    var del_btn=rowView.findViewById<Button>(R.id.del_btn)

    del_btn.setOnClickListener {

        var check_box_id=del_btn.text
        var get_number_only=check_box_id.replace("[^0-9]".toRegex(),"")
        //creating the instance of DatabaseHandler class
        val databaseHandler: DatabaseHandler = DatabaseHandler(context)
        //calling the deleteEmployee method of DatabaseHandler class to delete record
        val status = databaseHandler.deleteEmployee(
            DeleteModelClass(
                Integer.parseInt(get_number_only)

            )
        )
        if (status > -1) {
            Toast.makeText(context, "record deleted", Toast.LENGTH_LONG).show()
        }


    }
© www.soinside.com 2019 - 2024. All rights reserved.