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