android - एक और लेआउट के भीतर प्रोग्रामेटिक रूप से लेआउट Inflate




xml android-layout (4)

आप इसे नीचे की तरह कार्यान्वित कर सकते हैं:

LayoutInflater linf;
LinearLayout rr;

linf = (LayoutInflater) getApplicationContext().getSystemService(
        Context.LAYOUT_INFLATER_SERVICE);
linf = LayoutInflater.from(activity.this);

rr = (LinearLayout) findViewById(R.id.container_destacado);

for (int i = 1; i < NoOfTimes; i++) {

    final View v = linf.inflate(R.layout.item, null);
    rr.addView(v);
}

मुझे अपने एंड्रॉइड ऐप के साथ मदद चाहिए। मुझे किसी अन्य लेआउट के भीतर एक लेआउट बढ़ाने की ज़रूरत है और मुझे नहीं पता कि मैं कैसे करता हूं। मेरा एक्सएमएल कोड यह है:

  • item.xml - मुझे एकाधिक एक्सएमएल बढ़ाना चाहिए (एक चर संख्या के आधार पर)

        <RelativeLayout
             android:id="@+id/cartel_N1"
             android:layout_width="150dp"
             android:layout_height="match_parent"
             android:background="@color/tabhost_background_pressed"
             android:layout_marginRight="22dp"
             android:orientation="vertical" >
    
        <ImageView 
            android:id="@+id/img_N1"
            android:layout_width="120dp"
            android:layout_height="120dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="15dp"
            android:layout_marginRight="15dp"
            android:src="@drawable/mcdonalds_icon" />
    
        <TextView 
            android:id="@+id/title_N1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:text="McDonals del CC Alcampo"
            android:layout_marginBottom="10dp"
            android:layout_marginLeft="15dp"
            android:layout_marginRight="15dp"
            android:textSize="15sp" />
    
        <TextView 
            android:id="@+id/categoria_N1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:text="CATEGORIA"
            android:textSize="16sp"
            android:textStyle="bold"
            android:layout_marginLeft="15dp"
            android:layout_marginRight="15dp" />
    
        <RelativeLayout 
            android:id="@+id/stars_and_distance_N1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >
    
            <ImageView
                android:id="@+id/stars_N1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/stars_25"
                android:layout_marginLeft="15dp"
                android:layout_marginTop="7dp" />
    
    
            <TextView
                android:id="@+id/distance_N1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="200m"
                android:textSize="12sp"
                android:layout_alignParentRight="true"
                android:layout_marginRight="15dp"
                android:gravity="center_vertical"
                android:layout_marginTop="3dp" />
    
    
            <ImageView
                android:id="@+id/icon_pos_N1"
                android:layout_width="10dp"
                android:layout_height="10dp"
                android:src="@drawable/marker_distance"
                android:layout_toLeftOf="@id/distance_N1"
                android:layout_marginTop="7dp" />
    
        </RelativeLayout><LinearLayout
        android:id="@+id/cartel_N1"
        android:layout_width="150dp"
        android:layout_height="match_parent"
        android:background="@color/tabhost_background_pressed"
        android:layout_marginRight="22dp"
        android:orientation="vertical" >
    
        <ImageView 
            android:id="@+id/img_N1"
            android:layout_width="120dp"
            android:layout_height="120dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="15dp"
            android:layout_marginRight="15dp"
            android:src="@drawable/mcdonalds_icon" />
    
        <TextView 
            android:id="@+id/title_N1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:text="McDonals del CC Alcampo"
            android:layout_marginBottom="10dp"
            android:layout_marginLeft="15dp"
            android:layout_marginRight="15dp"
            android:textSize="15sp" />
    
        <TextView 
            android:id="@+id/categoria_N1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:text="CATEGORIA"
            android:textSize="16sp"
            android:textStyle="bold"
            android:layout_marginLeft="15dp"
            android:layout_marginRight="15dp" />
    
        <RelativeLayout 
            android:id="@+id/stars_and_distance_N1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >
    
            <ImageView
                android:id="@+id/stars_N1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/stars_25"
                android:layout_marginLeft="15dp"
                android:layout_marginTop="7dp" />
    
    
            <TextView
                android:id="@+id/distance_N1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="200m"
                android:textSize="12sp"
                android:layout_alignParentRight="true"
                android:layout_marginRight="15dp"
                android:gravity="center_vertical"
                android:layout_marginTop="3dp" />
    
    
            <ImageView
                android:id="@+id/icon_pos_N1"
                android:layout_width="10dp"
                android:layout_height="10dp"
                android:src="@drawable/marker_distance"
                android:layout_toLeftOf="@id/distance_N1"
                android:layout_marginTop="7dp" />
    
        </RelativeLayout>
    
  • यह मेरा मुख्य एक्सएमएल है:

    <ScrollView
          xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="wrap_content">
    
      <LinearLayout
           android:id="@+id/container_destacado"
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:orientation="vertical" >
    
               <!-- Inflate multiple xml file here -->
    
          </LinearLayout>
    </ScrollView>
    

आप कुछ ऐसा इस्तेमाल कर सकते हैं

 LayoutInflater inflater = LayoutInflater.from(context);
 View inflatedLayout= inflater.inflate(R.layout.yourLayout, null, false);
 containerDestacado.addView(inflatedLayout);

किसी बिंदु पर आपको अपनी गतिविधि के अंदर अपने inflater तक पहुंच प्राप्त करनी चाहिए, आप इसे इस कोड से कॉल कर सकते हैं:

LayoutInflater li = LayoutInflater.from(context);

जहां यह संदर्भ है या यह .getActivity () अगर यह एक टुकड़ा है। फिर अपने आटे को साथ बढ़ाएं:

View layout = li.inflate(R.layout.your_layout, null, false);

फिर अपने कंटेनर_डेस्टाकोडो में addView (लेआउट) का उपयोग करें:

View containerDestacado = li.inflate(R.layout.container_destacado, null, false);
containerDestacado.addView(layout);

आशा करता हूँ की ये काम करेगा।


ll = (LinearLayout) findViewById(R.id.container_destacado);  // ll is the layout where your inflated layout will be added 
linflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int pos = 0;
    while (pos < noOfTimes) 
    {
        View myView = linflater.inflate(R.layout.item, null); //here item is the the layout you want to inflate 
        myView.setId(pos);
        /*
           You can change TextView text and ImageView images here e.g.
           TextView tv = (TextView)myView.findViewById(R.id.title_N1);
           tv.setText(pos);

        */
        pos++;
        ll.addView(myView);
    }




android-inflate