উত্তর:
ইভেন্ট শ্রোতাদের কাছ থেকে :
onLongClick () - আপনি ইভেন্টটি গ্রাস করেছেন কিনা এবং এটি আরও এগিয়ে নেওয়া উচিত নয় তা নির্দেশ করার জন্য এটি একটি বুলিয়ান দেয়। এটি হ'ল, আপনি ইভেন্টটি পরিচালনা করেছেন এবং এটি এখানেই থামানো উচিত; আপনি যদি এটি পরিচালনা না করে থাকেন এবং / অথবা ইভেন্টটি অন্য কোনও ক্লিক-শ্রোতার কাছে চালিয়ে যাওয়া উচিত তা মিথ্যা প্রত্যাবর্তন করুন।
আপনি কি নিজের trueথেকে ফিরে আসছেন onLongClick()এবং এখনও সাধারণ ক্লিক ইভেন্ট পাচ্ছেন?
যুক্ত করতে সম্পাদিত : একটি তালিকাভিউয়ের জন্য, আপনি ব্যবহার করতে পারেন OnItemLongClickListener। onItemLongClick()সেখানে ইঙ্গিত কিনা এটা ঘটনা খাওয়া একটি অনুরূপ বুলিয়ান ফেরত মান ব্যবহার করে।
উত্তরটি সহজ শর্তে পুনরুদ্ধার করা:
প্রদত্ত:
@Override
public boolean onLongClick(View view) {
return true; // or false
}
return trueমানে ইভেন্টটি গ্রাস হয়ে গেছে। এটি পরিচালনা করা হয়। অন্য কোনও ক্লিক ইভেন্টগুলিকে অবহিত করা হবে না।return falseমানে ইভেন্টটি গ্রাস করা হয়নি। অন্য যে কোনও ক্লিক ইভেন্টগুলি বিজ্ঞপ্তিগুলি পাওয়া চালিয়ে যাবে।সুতরাং আপনি যদি onClickএকটি পরেও ট্রিগার হতে না চান onLongClick, তবে আপনার উচিত ইভেন্টটি return trueথেকে onLongClick।
আপনি OnClickListenerআপনার onClickপদ্ধতির জন্য ওভাররাইড করছেন তা নিশ্চিত করুন । এছাড়াও আপনি OnLongClickListenerআপনার onLongClickপদ্ধতির জন্য ওভাররাইড করছেন তা নিশ্চিত করুন । এবং নিশ্চিত হয়ে নিন যে আপনার onLongClickপদ্ধতিটি ফিরে trueআসবে, কারণ এটি গ্রাস করবে onClick।
আপনি setOnLongClickListenerউদাহরণস্বরূপ তৈরিটি বাস্তবায়ন করতে পারেন new View.OnClickListener()বা new View.OnLongClickListener(), আপনি যদি দীর্ঘ ক্লিক তৈরি করেন এবং একটি সাধারণ অনক্লিকলিস্টনার প্রয়োগ করেন তবে আপনি একক ক্লিকের এই ত্রুটিটি পদ্ধতিটি সক্রিয় করতে পারবেন। আপনার new View.OnLongClickListener()কেবলমাত্র দীর্ঘ ক্লিকগুলি ধরার জন্য ব্যবহার করা উচিত
myListView.setOnItemLongClickListener(this);বিকল্পটি সেট করার জন্য আপনাকে ফাংশনটি ওভাররাইড করতে হবেpublic boolean onItemLongClick(...)। এখানে আপনার কেবল প্রয়োজনreturn trueযা ইঙ্গিত দেয় যে লংক্লিক সক্রিয় ছিল এবং নিয়মিত ক্লিকের উপর ট্রিগার বাতিল করে দেবে। আপনি যদি মিথ্যা ফেরত দেন তবে এটি নিয়মিত ক্লিকটিকেও ট্রিগার করবে।