क्या लेआउट के संसाधन आईडी (जैसे R.layout.viewtoInflate) प्राप्त करने का कोई तरीका है जिससे दृश्य देखा गया था?संसाधन आईडी प्राप्त करें, जिसमें से दृश्य
मैं एक सूची दृश्य को लागू करने की कोशिश कर रहा हूं जो सूची आइटम के लिए 2 कस्टम लेआउट का उपयोग करता है। कौन सा आइटम लेआउट उपयोग किया जाता है, सूची दृश्य को पॉप्युलेट करने के लिए उपयोग की जाने वाली वस्तुओं में फ़ील्ड पर आधारित होता है।
जो मैं अपने कस्टम एडाप्टर में लापता हूं, यह जानने का एक तरीका है कि getView() में मुझे 'कन्वर्ट व्यू' प्राप्त करने वाला संसाधन किस प्रकार से प्राप्त हुआ था। अगर मैं उस जानकारी को प्राप्त कर सकता हूं तो मैं तुलना कर सकता हूं और यह निर्धारित कर सकता हूं कि मैं कनवर्ट व्यू को फिर से उपयोग कर सकता हूं या नहीं, अगर मुझे वर्तमान आइटम के लिए उपयुक्त लेआउट के साथ इसे बदलना है।
तो आदर्श यह कुछ इस तरह होगा: बिल्कुल
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
JSONObject currItem = mItems.getJSONObject(position);
int layoutType;
if (currItem.getBoolean("alternate"))
layoutType = R.layout.list_item_b;
else
layoutType = R.layout.list_item_a;
if (convertView == null || <convertView.resourceID> != layoutType) {
convertView = inflater.inflate(layoutType, null);
//Finish setting up new View and its holder
}
else {
//Get view holder for view reuse
}
//populate view with the required content
return convertView;
}
पर सबसे बुरा मैं सिर्फ नहीं कर सकता है फिर से उपयोग विचारों और सिर्फ लेआउट मैं हर बार की जरूरत बढ़, लेकिन यह बहुत बेकार लगता है।
मुझे समझ में नहीं आता कि मैं इस बहु-लेआउट कार्यक्षमता को कैसे याद करता हूं लेकिन धन्यवाद। लेआउट प्रकार खोजने के सुझाव के लिए भी धन्यवाद, अब इसके लिए जरूरी नहीं है, लेकिन किसी भी तरह से जानना अच्छा है। फिर भी, यह मेरे लिए अजीब लगता है कि फुले हुए दृश्य का लेआउट प्राप्त करने का कोई आधिकारिक तरीका नहीं है। – RobertoCuba