Kotlin 简单列表视图删除行

Posted

技术标签:

【中文标题】Kotlin 简单列表视图删除行【英文标题】:Kotlin Simple Listview Remove Row 【发布时间】: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) 从位置中删除元素一样简单。这不是你要找的吗? 先生,请多解释一下,因为我尝试过类似的方法,但没有成功 【参考方案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 

            
        
    

【讨论】:

以上是关于Kotlin 简单列表视图删除行的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin:获取点击项目列表视图的值(片段+适配器)

如何处理对 RecyclerView 列表项内部视图的点击。使用数据绑定和 kotlin

Kotlin,Android Studio:我无法让我的程序使用第二个适配器。列表视图

Kotlin入门(23)适配器的进阶表达

如何在可扩展列表视图 Kotlin 中获取标题中的子项计数

为什么列表视图的顶部会有白色的空白?