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 简单列表视图删除行的主要内容,如果未能解决你的问题,请参考以下文章
如何处理对 RecyclerView 列表项内部视图的点击。使用数据绑定和 kotlin