আমি অনেক উত্তর আছে সচেতন, কিন্তু আমি ভেবেছিলাম আমি সম্ভবত এটি আমার বাস্তবায়ন প্রদান করতে পারেন। ( আমি উত্তর দিয়েছি এমন আরও একটি প্রশ্নের পুরো বিশদ পাওয়া যাবে )।
সুতরাং, ক্লিক শ্রোতা যুক্ত করতে, আপনার অভ্যন্তর ViewHolder
শ্রেণীর প্রয়োগ করা দরকার View.OnClickListener
। এর কারণ হল আপনি একটি সেট হবে OnClickListener
থেকে itemView
এর প্যারামিটার ViewHolder
এর কন্সট্রাকটর। আমার অর্থ কী তা আমি আপনাকে দেখাতে দাও:
public class ExampleClickViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
TextView text1, text2;
ExampleClickViewHolder(View itemView) {
super(itemView);
// we do this because we want to check when an item has been clicked:
itemView.setOnClickListener(this);
// now, like before, we assign our View variables
title = (TextView) itemView.findViewById(R.id.text1);
subtitle = (TextView) itemView.findViewById(R.id.text2);
}
@Override
public void onClick(View v) {
// The user may not set a click listener for list items, in which case our listener
// will be null, so we need to check for this
if (mOnEntryClickListener != null) {
mOnEntryClickListener.onEntryClick(v, getLayoutPosition());
}
}
}
আপনার Adapter
আর সেটটার পদ্ধতির জন্য কাস্টম ইন্টারফেস হ'ল কেবলমাত্র অন্যান্য জিনিসগুলি আপনাকে যুক্ত করতে হবে :
private OnEntryClickListener mOnEntryClickListener;
public interface OnEntryClickListener {
void onEntryClick(View view, int position);
}
public void setOnEntryClickListener(OnEntryClickListener onEntryClickListener) {
mOnEntryClickListener = onEntryClickListener;
}
সুতরাং আপনার নতুন, ক্লিক-সমর্থনকারী Adapter
সম্পূর্ণ।
এখন, এটি ব্যবহার করুন ...
ExampleClickAdapter clickAdapter = new ExampleClickAdapter(yourObjects);
clickAdapter.setOnEntryClickListener(new ExampleClickAdapter.OnEntryClickListener() {
@Override
public void onEntryClick(View view, int position) {
// stuff that will happen when a list item is clicked
}
});
এটি মূলত আপনি কীভাবে একটি সাধারণ সেট আপ করবেন Adapter
বাদে আপনি যখন ব্যবহারকারীর কোনও নির্দিষ্ট তালিকা আইটেম ক্লিক করেন তখন আপনি কী করবেন তা নিয়ন্ত্রণ করতে আপনি তৈরি করেছেন সেটার পদ্ধতিটি আপনি ব্যবহার করেন।
গিটহাবের উপর এই গিস্টটিতে আমি তৈরি উদাহরণগুলির একটি সেটও দেখতে পারি:
https://gist.github.com/FarbodSalamat-Zadeh/7646564f48ee708c1582c013e1de4f07