📜  如何检测 Android 中 ListView 项目的长按?

📅  最后修改于: 2022-05-13 01:55:20.599000             🧑  作者: Mango

如何检测 Android 中 ListView 项目的长按?

Android 中的 ListView 是一个 ViewGroup,用于按行显示项目,并具有将所需元素插入列表的适配器。将项目插入 ListView 后,可以单击它们并执行所需的操作。

由于可以在 ListView 上执行多个操作,因此在本文中,我们将向您展示如何处理对 ListView 中项目的长按。

分步实施

第 1 步:在 Android Studio 中创建一个新项目

要在 Android Studio 中创建新项目,请参阅如何在 Android Studio 中创建/启动新项目。我们在 Kotlin 中演示了该应用程序,因此请确保在创建新项目时选择 Kotlin 作为主要语言。



步骤 2:使用 activity_main.xml 文件

导航到app > res > layout > activity_main.xml并将以下代码添加到该文件中。下面是activity_main.xml文件的代码。在布局中添加一个 ListView。

XML


  
    
  


Kotlin
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.AdapterView
import android.widget.ArrayAdapter
import android.widget.ListView
import android.widget.Toast
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Create a list of items
        val mCity = arrayOf("Delhi", "Mumbai", "Hyderabad", "Pune", "Bengaluru", "Chennai", "Kolkata", "Jaipur", "Lucknow", "Bhopal")
  
        // Declare and initialize the ListView
        val mListView: ListView = findViewById(R.id.listView)
  
        // Create adapter for the list view
        val mAdapter: ArrayAdapter<*> = ArrayAdapter(this, android.R.layout.simple_list_item_1, mCity)
        mListView.adapter = mAdapter
  
        // Handle long press on the ListView item
        mListView.onItemLongClickListener = AdapterView.OnItemLongClickListener { _, _, index, _ ->
            Toast.makeText(applicationContext, "Long clicked on ${mCity[index]}", Toast.LENGTH_SHORT).show()
            true
        }
    }
}


步骤 3:使用MainActivity.kt 文件

转到MainActivity.kt文件并参考以下代码。下面是MainActivity.kt文件的代码。代码中添加了注释以更详细地理解代码。

科特林

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.AdapterView
import android.widget.ArrayAdapter
import android.widget.ListView
import android.widget.Toast
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Create a list of items
        val mCity = arrayOf("Delhi", "Mumbai", "Hyderabad", "Pune", "Bengaluru", "Chennai", "Kolkata", "Jaipur", "Lucknow", "Bhopal")
  
        // Declare and initialize the ListView
        val mListView: ListView = findViewById(R.id.listView)
  
        // Create adapter for the list view
        val mAdapter: ArrayAdapter<*> = ArrayAdapter(this, android.R.layout.simple_list_item_1, mCity)
        mListView.adapter = mAdapter
  
        // Handle long press on the ListView item
        mListView.onItemLongClickListener = AdapterView.OnItemLongClickListener { _, _, index, _ ->
            Toast.makeText(applicationContext, "Long clicked on ${mCity[index]}", Toast.LENGTH_SHORT).show()
            true
        }
    }
}

输出:

您可以看到,在长按任何元素时,会显示有关项目的消息。您可以自定义操作以执行任何所需的操作。

想要一个更快节奏和更具竞争力的环境来学习 Android 的基础知识吗?
单击此处前往由我们的专家精心策划的指南,旨在让您立即做好行业准备!