ListView-এ দীর্ঘ ক্লিক হ্যান্ডলিং
এই টিউটোরিয়ালে দেখানো হয়েছে কিভাবে ListView-এর আইটেমগুলোর ওপর লং প্রেস (দীর্ঘ ক্লিক) ডিটেক্ট করে একশন নেওয়া যায়।
ধাপ ১: প্রজেক্ট তৈরি
ধাপ ২: ListView লেআউট
<?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.java - লং ক্লিক লিসেনার
package app.com.sample;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
String[] mobileArray = {"Android", "IPhone", "WindowsMobile", "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listView = findViewById(R.id.listView);
ArrayAdapter adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, mobileArray);
listView.setAdapter(adapter);
// লং ক্লিক লিসেনার সেট করুন
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView> parent, View view, int position, long id) {
String selectedItem = (String) parent.getItemAtPosition(position);
Toast.makeText(getApplicationContext(), "Long clicked: " + selectedItem, Toast.LENGTH_SHORT).show();
return true; // true রিটার্ন করলে ইভেন্ট কনসামড মाना হয়
}
});
}
}
মূল পার্থক্য
| লিসেনার টাইপ | মেথড | রিটার্ন টাইপ | ব্যবহার |
|---|---|---|---|
| OnItemClickListener | onItemClick | void | সাধারণ ক্লিক |
| OnItemLongClickListener | onItemLongClick | boolean | দীর্ঘ ক্লিক |
টিপস
trueরিটার্ন করলে সিস্টেম বুঝবে ইভেন্ট হ্যান্ডল করা হয়েছে।- কন্টেক্সট মেনু দেখানোর জন্য
registerForContextMenu(listView)ব্যবহার করুন। - RecyclerView-এ
OnLongClickListenerআডাপ্টারের ভিউহোল্ডারে সেট করতে হয়।