मुझे पता है कि बहुत सारे उत्तर हैं, लेकिन मुझे लगा कि मैं इसे लागू करने के साथ ही इसे लागू कर सकता हूं। ( मेरे द्वारा पूछे गए एक अन्य प्रश्न पर पूर्ण विवरण पाया जा सकता है )।
इसलिए, एक क्लिक श्रोता को जोड़ने के लिए, आपके आंतरिक 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
, सिवाय इसके कि आप अपनी सेटर विधि का उपयोग करते हैं जिसे आपने नियंत्रित किया है कि आप क्या करेंगे जब आपका उपयोगकर्ता किसी विशेष सूची आइटम पर क्लिक करेगा।
आप GitHub पर इस Gist पर बने उदाहरणों के एक सेट के माध्यम से भी देख सकते हैं:
https://gist.github.com/FarbodSalamat-Zadeh/7646564f48ee708c1582c013e1de4f07