Pages

1

Now ,what is the meaning of inflater??

  • Layout Inflater is used for describe or manipulate  screen using predefined xml file .
  •  If you want to customize any view/layout then you have to use layout inflater.
  • It can not use directly but we can use with the help of getLayoutInflater()  or getSystemService(String). that provide the standard layout.
  • This class is used to instantiate layout XML file into its corresponding View objects
  • For create Layout Inflater
For Example:
            LayoutInflater lf = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
            View v = lf.inflate(R.layout.design_main_acitivty, parent, false);

Now we implement the inflater with listview .
 For that first we create new simple android project 


 import com.emprovantion.app
import android.os.Bundle;
import android.app.Activity;
import android.app.ListActivity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class MainActivity extends ListActivity {

    String[] names = { "ABC", "DEF", "JHI", "JKL", "MNO", "PQR", "STU" };
    String[] cities = { "Rajkot", "Surat", "Baroda", "Bombay", "Palitana", "Navsari", "Broda" };
    int[] images = { R.drawable.i1, R.drawable.i2, R.drawable.i3, R.drawable.i4, R.drawable.i5, R.drawable.i6, R.drawable.i7 };
   
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_main_activity);
      
        setListAdapter(new MyAdapter());
    }
   
    class MyAdapter extends BaseAdapter
    {
        public int getCount() { return names.length; }
        public Object getItem(int position) {return null;}
        public long getItemId(int position) {return 0;}

        public View getView(int position, View convertView, ViewGroup parent) {
      
            LayoutInflater lf = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
            View v = lf.inflate(R.layout.design_main_acitivty, parent, false);
          
            ImageView iv1 = (ImageView) v.findViewById(R.id.imageView1);
            TextView tv1 = (TextView) v.findViewById(R.id.textView1);
            TextView tv2 = (TextView) v.findViewById(R.id.textView2);
          
            iv1.setImageResource(images[position]);
            tv1.setText(names[position]);
            tv2.setText(cities[position]);
          
            return v;
        }
      
    }

}



now.in xml file 
layout_main_activity.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:text="Button" />

    <ListView
        android:id="@+id/android:list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/button1"
        android:layout_centerHorizontal="true"
         >
    </ListView>

</RelativeLayout> 





 Now,another layout design_main_activity.xml


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:src="@drawable/ic_launcher"
        android:layout_margin="10dp"
         />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/imageView1"
        android:layout_alignLeft="@+id/textView1"
        android:text="Small Text"
        android:textAppearance="?android:attr/textAppearanceSmall" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/imageView1"
        android:layout_toRightOf="@+id/imageView1"
        android:text="Large Text"
        android:textAppearance="?android:attr/textAppearanceLarge" />

</RelativeLayout>





After execute above code





















































 


No comments:

Post a Comment