আমি অনেক উত্তর আছে সচেতন, কিন্তু আমি ভেবেছিলাম আমি সম্ভবত এটি আমার বাস্তবায়ন প্রদান করতে পারেন। ( আমি উত্তর দিয়েছি এমন আরও একটি প্রশ্নের পুরো বিশদ পাওয়া যাবে )।
সুতরাং, ক্লিক শ্রোতা যুক্ত করতে, আপনার অভ্যন্তর 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