2011-08-04 22 views
9

एक्सएमएल लेआउट में विचारों के लिए संसाधन आईडी का होना चाहिए सभी लेआउट में अद्वितीय होना चाहिए?एंड्रॉइड रिसोर्स आईडी

उदाहरण के लिए, मैं थोड़ा रेसिपी प्रबंधक ऐप पर काम कर रहा हूं। मेरे पास एक नया घटक जोड़ने के लिए एक लेआउट फ़ाइल है। इस लेआउट में मेरे पास उस घटक के लिए एक संपादन टेक्स्ट है जिसे मैं "edt_name" कहूंगा। लेकिन मुझे डर है कि यह नाम बहुत सामान्य है; जैसे मेरे पास अन्य एक्सएमएल लेआउट फाइलों में रेसिपी नाम, एक खाना पकाने की प्रक्रिया का नाम इत्यादि के लिए एडिटटेक्स्ट भी हो सकता है।

हालांकि, मैं लेबल को आवश्यक से अधिक जटिल बनाना नहीं चाहता हूं। अगर मैं कर सकता हूं तो मैं उपरोक्त संपादन टेक्स्ट "edt_name_new_ingredient" को कॉल करना चाहता हूं।

मैं उत्सुक हूं कि कैसे डेवलपर सामान्य रूप से अपने संसाधनों को व्यवस्थित करते हैं। जहां तक ​​मुझे पता है, एंड्रॉइड संसाधनों के लिए उप-निर्देशिकाओं का समर्थन नहीं करता है, इसलिए नामकरण योजनाएं वास्तव में गन्दा हो सकती हैं।

उत्तर

6

कोई संसाधन आईडी अलग-अलग एक्सएमएल लेआउट में अद्वितीय नहीं होना चाहिए, यह किसी विशेष XML फ़ाइल में कभी भी अद्वितीय होना चाहिए।

+0

लेकिन जब मैं अपनी जावा फ़ाइल में R.id. (view_id) तक पहुंचता हूं, तो मुझे सभी दृश्यों से आईडी की एक सूची मिलती है? मैंने बस दो अलग-अलग एक्सएमएल लेआउट फ़ाइलों में एक ही नाम के साथ दो एडिटबॉक्स का नामकरण करने का प्रयास किया। मुझे एक त्रुटि संदेश नहीं मिला, लेकिन जब मैंने R.id. (view_id) का उपयोग किया, तो मुझे केवल एक view_id मिला, और मुझे नहीं पता कि कौन सा संपादन टेक्स्ट आईडी को संदर्भित करता है! –

+5

आप सही हैं ... लेकिन एंड्रॉइड दृश्य आईडी को एक्सएमएल लेआउट से चुनता है जिसे आपने अपनी गतिविधि में सेटकंटेंट व्यू विधि का उपयोग करके सेट किया है, सभी व्यू आईडी से। कि आप सूची में आ रहे हैं ... यही कारण है कि आपको कोई त्रुटि नहीं मिलती है। दो xml में edittext के लिए आईडी को बदलने का प्रयास करें ... फिर आप –

+0

पर क्या चल रहा है इसकी एक बेहतर तस्वीर प्राप्त कर सकते हैं मैंने अभी जो परीक्षण किया है उसका परीक्षण किया है और आप सही हैं, सफलता_निल। R.id. (view_id) सभी लेआउट में सभी विचार लाता है, लेकिन यदि दृश्य उस लेआउट में नहीं मिलता है जिसका आप वर्तमान में उपयोग कर रहे हैं, तो प्रोग्राम क्रैश हो जाएगा। इसलिए यदि आपके पास अलग-अलग लेआउट फ़ाइलों में एक ही आईडी के साथ दो दृश्य हैं, तो यह स्वचालित रूप से आपकी वर्तमान लेआउट फ़ाइल में से एक का उपयोग करेगा। –

2

संसाधन आईडी को पैकेज के भीतर नामित किया गया है। जब आप किसी संसाधन (उदाहरण के लिए, एक्सएमएल में) तक पहुंचते हैं, तो पैकेज का नाम पूरी तरह से चालू हो जाता है। आपके पास एक अलग पैकेज में अन्य संसाधन फ़ाइलें हो सकती हैं और उन लोगों को संदर्भित कर सकती हैं जो आपके कोड या एक्सएमएल के भीतर हैं (इस प्रकार कोई एसडीके के साथ आने वाले प्लेटफ़ॉर्म संसाधनों तक पहुंचता है)।

इसी प्रकार कोड में, आप एक अलग पैकेज के R कक्षा तक पहुंच सकते हैं और अपने संसाधनों का उपयोग कर सकते हैं, लेकिन सभी पैकेजों में से सभी को अद्वितीय नाम होना चाहिए।

अधिक जानकारी दस्तावेज here में पाया जा सकता है।

+0

लिंक के लिए धन्यवाद। मैं एक ही परियोजना के रूप में अपना आवेदन बना रहा हूं, इसलिए मेरे पास केवल एक "आर" वर्ग है। मुझे लगता है कि इसका मतलब है कि मेरे सभी लेआउट फ़ाइलों में मेरे सभी विचारों में अद्वितीय आईडी है? –

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