मैं बाद में XML तत्व का संदर्भ कैसे दूं?एंड्रॉइड लेआउट संदर्भ xml तत्व बाद में फ़ाइल
यहां एक विशिष्ट उपयोग केस है। आइए मान लें कि मेरे पास रूट लाइनरलाउट के साथ एक फॉर्म है, जिसमें एकाधिक पंक्तियों के लिए लीनियरलाइट्स शामिल हैं, प्रत्येक पंक्ति में एक या अधिक टेक्स्ट इनपुट क्षेत्र हैं।
यहां एक दृश्य है कि मैं किसके लिए जा रहा हूं। पहली तस्वीर वेन्मो के ऐप से है, दूसरा निम्नलिखित एक्सएमएल का प्रतिपादन है।
इस तरह के एक लेआउट ऐसा दिखाई दे सकता:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/row_card_number"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<EditText
android:id="@+id/card_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:nextFocusDown="@id/month"/>
</LinearLayout>
<LinearLayout
android:id="@+id/row_date"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<EditText
android:id="@+id/month"
android:layout_height="wrap_content"
android:layout_width="100dp"
android:nextFocusDown="@id/year"/>
<EditText
android:id="@+id/year"
android:layout_height="wrap_content"
android:layout_width="match_parent"/>
</LinearLayout>
</LinearLayout>
इस प्रयोग के मामले में, आगे संदर्भित necassary है अगले फोकस तत्व सेट करने के लिए। इस तरह, जब आप कीबोर्ड पर अगला बटन दबाते हैं, तो यह सही दृश्य पर जाएगा। इस नमूना xml में, nextFocusDown
एस के बिना, अगला दबाने से नाम से महीने तक जाना होगा, और कभी भी वर्ष में नहीं जायेगा।
हालांकि, अगर आप इस संकलन करने का प्रयास करें, तो आपको एक त्रुटि मिल जाएगा:
Error:(18, 36) No resource found that matches the given name (at 'nextFocusDown' with value '@id/month').
इसका कारण यह है आईडी month
अभी तक जब मैं इसे संदर्भित करने के लिए कोशिश कर रहा हूँ नहीं प्रारंभ किया गया है, के बाद से है कि बाद में फ़ाइल में। मैं XML में किसी आईडी को संदर्भित कैसे कर सकता हूं जो फ़ाइल में बाद में दिखाई देता है?
यह एक आत्म जवाब सवाल है। मुझे वास्तव में कुछ भी नहीं मिला जो इस अच्छी तरह से समझाया गया, इसलिए मैंने सोचा कि मैं इसे स्वयं करूँगा। सुधार के लिए सुझाव स्वागत है :) –