8

मैं एक लेआउट bottom.xml कहा जाता है,मेरे मामले में किसी अन्य के अंदर एक लेआउट कैसे एम्बेड करें?

bottom.xml: (बस एक TextView और संपादित पाठ दृश्य शामिल है)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:orientation="vertical" 
    > 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:gravity="center_horizontal" 
      android:text="@string/username" 

     /> 

     <EditText 
      android:id="@+id/name" 

      android:layout_width="120dip" 
      android:layout_height="50dip" 
      android:layout_gravity="center_horizontal"  
     /> 
</LinearLayout> 

वहाँ करने के लिए कोई तरीका है एम्बेड उपरोक्त bottom.xml दोहराने के बजाय अन्य लेआउट के अंदर लेआउट कई लेआउट फ़ाइलों में एक ही कोड डालना (जब अन्य लेआउट में एक भाग होता है जिसमें नीचे .xml के समान लेआउट होता है)?

उदाहरण के लिए, अगर मेरे admin.xml लेआउट भी लेआउट जो bottom.xml, कैसे सिर्फ अंदर bottom.xml एम्बेड करने के लिए के रूप में बिल्कुल वैसा ही लग रहा है का एक हिस्सा मौजूद admin.xml एक ही कोड को फिर से लिखने के बजाय?

admin.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
    > 
    ... 
    ... 
     <!--How to embed bottom.xml here--> 
    ... 
</LinearLayout> 

अगर एंड्रॉयड में यह करने के लिए कोई रास्ता नहीं है, क्या वैकल्पिक हल हो सकता है ??

---------- अद्यतन -----------

तरह @xevincent सुझाव दिया, मैं bottom.xml का पुन: उपयोग कर सकते हैं उपयोग के द्वारा <include> टैग,

लेकिन पुनर्वित्तित लेआउट के अंदर तत्वों की आईडी कैसे बदलें?

उदाहरण के लिए, insdie bottom.xml, मैं जब मैं अन्य लेआउट, कैसे आईडी बदलने के लिए bottom.xml लेआउट का पुन: उपयोग करने के लिए <editText android:id="@+id/other_name"><editText android:id="@+id/name"> की आईडी को बदलने के लिए चाहते हैं?

+0

संभव समाधान: http://stackoverflow.com/questions/3421864/how-do-i-access -थ-विचार-अंदर-लेआउट-कब-i-reuse-it-multiple-times – Haozhun

उत्तर

7

इस दस्तावेज़ को देखें reusing layouts

+0

@ xevincent, resued लेआउट के अंदर तत्वों की आईडी कैसे बदलें bottom.xml, मैं संपादन लेआउट की आईडी को बदलना चाहता हूं जब मैं अन्य लेआउट में bottom.xml लेआउट का पुन: उपयोग करता हूं, आईडी को कैसे बदला जाए? – Leem

+0

आप xml तरीके से bottom.xml के अंदर तत्वों की आईडी को नहीं बदल सकते हैं लेकिन आप इसे जावा में कर सकते हैं (View.setId (int) देखें)। – xevincent

2

बस वोट दें xevincent के anwser है। मैंने यह उत्तर जोड़ा क्योंकि एसओ "एक महत्वपूर्ण लिंक के सबसे प्रासंगिक भाग को हमेशा उद्धृत करने की सिफारिश करता है, यदि लक्षित साइट पहुंच योग्य नहीं है या स्थायी रूप से ऑफलाइन हो जाती है।"

तो, मूल रूप से, his link बताता है कि आपको <include /> का उपयोग करना चाहिए।

<com.android.launcher.Workspace 
    android:id="@+id/workspace" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 

    launcher:defaultScreen="1"> 

    <include android:id="@+id/cell1" layout="@layout/workspace_screen" /> 
    <include android:id="@+id/cell2" layout="@layout/workspace_screen" /> 
    <include android:id="@+id/cell3" layout="@layout/workspace_screen" /> 

</com.android.launcher.Workspace> 

और पता है कि तुम लेआउट मानदंडों को ओवरराइड कर सकते हैं: अपने "अद्यतन" करने के लिए

<include android:layout_width="fill_parent" layout="@layout/image_holder" /> 
संबंधित मुद्दे