2017-01-27 8 views
5

मैं Proteus नामक एक एंड्रॉइड लाइब्रेरी का उपयोग कर रहा हूं जो हमारे सर्वर पर बैठे एक JSON फ़ाइल के साथ रन टाइम के दौरान लेआउट को बढ़ाता है। यह लाइब्रेरी डेटा बाध्यकारी के लिए अनुमति देती है लेकिन मेरा सवाल यह है कि मैं अपने ऐप का उपयोग करते समय इन क्षेत्रों में डेटा कैसे प्राप्त कर सकता हूं? मैं लेआउट के किसी भी पहचानकर्ता का संदर्भ नहीं दे सकता क्योंकि वे संकलन के दौरान मौजूद नहीं हैं। वहाँ जब (R.id.input) वास्तव में क्रम ?:रनटाइम के दौरान उपलब्ध टेक्स्टफ़िल्ड्स की एक सूची प्राप्त करें?

View view = inflater.infalte(R.layout.fragment_form, container, false); 
TextView textView = (TextView)view.findViewById(R.id.input); 

या संभवतः प्रोग्राम के रूप में जब तक अस्तित्व में नहीं है बयान में त्रुटि को अनदेखा करने रनटाइम के दौरान सभी उपलब्ध एकमात्र पहचान की एक सूची प्राप्त कोई तरीका है? किसी भी प्रकार की सूचना उपयोगी होगी। धन्यवाद।

उत्तर

2

proteus एंड्रॉइड एक्सएमएल लेआउट के लिए संकलन समय पर उत्पन्न int आईडी के विपरीत रनटाइम पर दृश्य आईडी उत्पन्न करता है। एंड्रॉइड के विपरीत प्रोटीस द्वारा बनाए गए दृश्यों की आईडी String पर आधारित है, और R.id.<something> काम नहीं करेगा।

प्रोटीस String आईडी द्वारा एक दृश्य खोजने के लिए उपयोगिता विधियों प्रदान करता है।

लेआउट:

{ 
    "type": "TextView", 
    "id": "myId" 
} 

जावा:

View view = proteusView.getViewManager().findViewById("myId"); // can be null 

लौटे दृश्य भी हो सकता है एक ProteusView

अधिक जानकारी के लिए the wiki को देखें।

विकी थोड़ा पुराना है, ऊपर उत्तर 5.0.0-rc11 रिलीज और ऊपर के लिए है। विकी जल्द ही अपडेट किया जाना चाहिए।

संबंधित मुद्दे

 संबंधित मुद्दे