【问题标题】:Kotlin Simple Listview Remove RowKotlin 简单列表视图删除行
【发布时间】:2021-04-05 06:56:23
【问题描述】:

我想删除我创建的动态列表中的长按行。但我无法编写适配器。如果你能提供帮助,我会很高兴。如果有兴趣,我可以编辑更多需要的代码块。不需要长按删除。我愿意接受其他建议。

Customers.kt

  var compnameList=ArrayList<String>()
lateinit var  toggle: ActionBarDrawerToggle

override fun onCreate(savedInstanceState: Bundle?) {

    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_customers)
    supportActionBar!!.setTitle("Müşteriler")




    getDataParse()



    listView.setOnItemClickListener { adapterView, view, i, l ->

        val intent=Intent(applicationContext,CustomersDetails::class.java)
        intent.putExtra("Name",compnameList[i])
        startActivity(intent)
    }

    listView.setOnItemLongClickListener { adapterView, view, i, l ->

       //İt'snot define


    }









}


fun getDataParse(){

    val search=findViewById<SearchView>(R.id.searchView)
    val listView=findViewById<ListView>(R.id.listView)

    val arrayAdapter=ArrayAdapter(this,android.R.layout.simple_list_item_1,compnameList)
    listView.adapter=arrayAdapter
    registerForContextMenu(listView)


   

【问题讨论】:

  • 我认为就像通过调用 list.removeAt(index) 然后使用 adapter.notifyItemRemoved(position) 从位置中删除元素一样简单。这不是你要找的吗?
  • 先生,请多解释一下,因为我尝试过类似的方法,但没有成功

标签: android database kotlin listview onlongclicklistener


【解决方案1】:

如果您需要,这里是使用基本列表视图适配器编辑的代码:

var compnameList=ArrayList<String>()
lateinit var  toggle: ActionBarDrawerToggle

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_customers)

    supportActionBar!!.setTitle("Müşteriler")

    getDataParse()

    findViewById<ListView>(<your-list-view-id>).adapter = ListViewAdapter()
}

inner class ListViewAdapter : BaseAdapter() {

    override fun getCount(): Int = compnameList.size

    override fun getItem(position: Int): Any = compnameList[position]

    override fun getItemId(position: Int): Long = position.toLong()

    override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
        val view = convertView ?: LayoutInflater.from(parent?.context).inflate(android.R.layout.simple_list_item_1, parent, false)

        ViewHolder(view).bind(compnameList[position])

        return view
    }

    inner class ViewHolder(itemView: View) {

        val text1 = itemView.findViewById<LinearLayout>(R.id.text1)

        fun bind(compname: String) {
            text1.text = compname.nome

            itemView.setOnClickListener {
                val intent=Intent(this, CustomersDetails::class.java)
                intent.putExtra("Name", compname)
                startActivity(intent)
            }

            itemView.setOnLongClickListener {

            }
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    • 2016-05-04
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多