কম্পিউটার টিউটোরিয়াল

Kotlin ব্যবহার করে Android ListView-এ লং ক্লিক লিসেনার বাস্তবায়ন

ওভারভিউ

এই টিউটোরিয়ালে দেখানো হয়েছে কিভাবে ListView-এ OnItemLongClickListener ব্যবহার করে লং ক্লিক (দীর্ঘ স্পর্শ) ইভেন্ট হ্যান্ডেল করা যায়।

প্রয়োজনীয় ধাপসমূহ

ধাপ ১: নতুন প্রজেক্ট তৈরি

ধাপ ২: activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
    
    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

ধাপ ৩: MainActivity.kt

import android.os.Bundle
import android.widget.AdapterView
import android.widget.ArrayAdapter
import android.widget.ListView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {
    private val mobileArray = arrayOf(
        "Android", "iPhone", "Windows Mobile", 
        "Blackberry", "WebOS", "Ubuntu", "Windows 7", "macOS"
    )
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        title = "ListView Long Click Demo"
        
        val listView = findViewById<ListView>(R.id.listView)
        val adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, mobileArray)
        listView.adapter = adapter
        
        // লং ক্লিক লিসেনার সেট
        listView.onItemLongClickListener = AdapterView.OnItemLongClickListener { parent, view, position, id ->
            val item = parent.getItemAtPosition(position) as String
            Toast.makeText(applicationContext, "Long clicked: $item", Toast.LENGTH_SHORT).show()
            true // true রিটার্ন মানে ইভেন্ট কনসামড হয়েছে
        }
        
        // সাধারণ ক্লিক লিসেনার (অপশনাল)
        listView.onItemClickListener = AdapterView.OnItemClickListener { parent, view, position, id ->
            val item = parent.getItemAtPosition(position) as String
            Toast.makeText(applicationContext, "Clicked: $item", Toast.LENGTH_SHORT).show()
        }
    }
}

ধাপ ৪: AndroidManifest.xml

স্ট্যান্ডার্ড কনফিগারেশন।

গুরুত্বপূর্ণ পয়েন্টস

  • true রিটার্ন করা মানে লং ক্লিক ইভেন্ট হ্যান্ডেল হয়েছে এবং আরও প্রপেগেট হবে না
  • false রিটার্ন করলে সিস্টেম ডিফল্ট আচরণ (যেমন কনটেক্সট মেনু) চলতে পারে
  • position প্যারামিটারটি অ্যাডাপ্টারের পজিশন নির্দেশ করে
  • id হল ডেটাবেজ আইডি (যদি কার্সর অ্যাডাপ্টার ব্যবহার করা হয়)

RecyclerView-এ লং ক্লিক (আধুনিক পদ্ধতি)

ListView লিগ্যাসি। নতুন অ্যাপে RecyclerView ব্যবহার করুন:

// RecyclerView.Adapter-এ
inner class MyViewHolder(view: View) : RecyclerView.ViewHolder(view) {
    init {
        itemView.setOnLongClickListener {
            val position = adapterPosition
            if (position != RecyclerView.NO_POSITION) {
                onLongClick(position)
                true
            } else false
        }
    }
}

// ইন্টারফেস ডিফাইন করুন
interface OnItemLongClickListener {
    fun onItemLongClick(position: Int)
}

কনটেক্সট মেনু ব্যবহার (বিকল্প)

override fun onCreateContextMenu(menu: ContextMenu, v: View, menuInfo: ContextMenu.ContextMenuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo)
    val info = menuInfo as AdapterView.AdapterContextMenuInfo
    menu.add(0, 1, 0, "Delete")
    menu.add(0, 2, 0, "Edit")
}

override fun onContextItemSelected(item: MenuItem): Boolean {
    val info = item.menuInfo as AdapterView.AdapterContextMenuInfo
    when (item.itemId) {
        1 -> deleteItem(info.position)
        2 -> editItem(info.position)
    }
    return super.onContextItemSelected(item)
}

// Activity-তে রেজিস্টার করুন
registerForContextMenu(listView)
  1. Android ListView-এ ফুটার ভিউ (Footer View) ক্লিক লিসেনার যোগ করা

  2. অ্যান্ড্রয়েডে টুলবার আইকনে ক্লিক ইভেন্ট (OnClick) কীভাবে ইমপ্লিমেন্ট করবেন?

  3. অ্যান্ড্রয়েড ListView-এ লং ক্লিক লিসেনার ইমপ্লিমেন্ট করা

  4. Kotlin ব্যবহার করে Android ListView-এ লং ক্লিক লিসেনার বাস্তবায়ন