मेरे पास एक सूची दृश्य है जो दृश्य बनाने और वस्तुओं को बनाने के लिए विभिन्न XML फ़ाइलों का उपयोग करता है। इन एक्सएमएल फाइलों में से एक में रेटिंगबार है। सब कुछ प्रदर्शित करता है और उत्कृष्ट दिखता है।रेटिंगबार ऑनक्लिक
मैं एक नई गतिविधि लॉन्च करने के लिए रेटिंगबार पर ऑनक्लिक हैंडलर संलग्न करने का प्रयास कर रहा हूं। मेरा रेटिंगबार शैली का है? एंड्रॉइड: एटीआर/रेटिंगबार्स्टाइलसम; तो यह सिर्फ एक संकेतक है (मैं चाहता हूं कि छोटा रेटिंगबार उपयोगकर्ता को उस गतिविधि में ले जाने के लिए क्लिक करें जहां वे विभिन्न रेटिंग कर सकते हैं)।
मेरी समस्या रेटिंगबारी के लिए ऑनक्लिक हैंडलर है जिसे कभी निष्पादित नहीं किया जाता है। यह और अधिक रोचक बनाता है कि मैंने लाइनरलाइट को क्लिक करने योग्य बनाने के लिए एक ही कोड का उपयोग किया है और यह ठीक काम करता है। क्या कोई मुझे बता सकता है क्यों?
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int type = getItemViewType(position);
// get the View for this list item
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
switch (type) {
// ...
case TYPE_LOOKUP:
v = vi.inflate(R.layout.layout_itemlist_itemlookup, parent, false);
LinearLayout vLookup = (LinearLayout)v.findViewById(R.id.itemlist_lookup);
if (vStore != null) {
vStore.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// THIS HANDLER WORKS FINE
Intent intentLaunchLookup = new Intent(ActivityItemList.this, ActivityLookup.class);
startActivity(intentLaunchLookup);
}
});
}
break;
case TYPE_SEPARATOR:
v = vi.inflate(R.layout.layout_itemlist_itemseparator, parent, false);
RatingBar r = (RatingBar)v.findViewById(R.id.itemlist_rating);
if (r != null) {
r.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// THIS HANDLER DOES NOT GET EXECUTED (r IS NOT NULL; SO THIS SHOULD HAVE BEEN CREATED)
Intent intentLaunchRating = new Intent(ActivityItemList.this, ActivityRating.class);
startActivity(intentLaunchRating);
}
});
}
break;
// ...
}
}
// …
// return the created view
return v;
}
किसी को भी इस पर कोई अतिरिक्त टिप्पणियां है? मैं अभी भी निष्पादित करने के लिए ऑनक्लिक हैंडलर नहीं प्राप्त कर सकता हूं। जैसा कि आप देख सकते हैं, मैं एक लाइनरलायआउट के लिए एक ही कोड का उपयोग कर रहा हूं और यह ठीक काम करता है। मेरा रेटिंगबार क्लिक करने योग्य पर सेट है। मैंने LinearLayout और RatingBar दोनों के लिए ऑनक्लिक श्रोताओं के अंदर ब्रेक पॉइंट सेट किए हैं और केवल लाइनरलाउट हैंडलर निष्पादित हो जाता है। नोट: RatingBar LinearLayout के अंदर नहीं है। जैसा कि आप देख सकते हैं, वे दो अलग-अलग एक्सएमएल फाइलों में हैं। – Andrew