What does LayoutInflater in Android do?


Question

What is the use of LayoutInflater in Android?

1
320
11/29/2014 7:06:49 AM

Accepted Answer

When you use a custom view in a ListView you must define the row layout. You create an xml where you place android widgets and then in the adapter's code you have to do something like this:

public MyAdapter(Context context, List<MyObject> objects) extends ArrayAdapter {
  super(context, 1, objects);
  /* We get the inflator in the constructor */
  mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
  View view;
  /* We inflate the xml which gives us a view */
  view = mInflater.inflate(R.layout.my_list_custom_row, parent, false);

  /* Get the item in the adapter */
  MyObject myObject = getItem(position);

  /* Get the widget with id name which is defined in the xml of the row */
  TextView name = (TextView) view.findViewById(R.id.name);

  /* Populate the row's xml with info from the item */
  name.setText(myObject.getName());

  /* Return the generated view */
  return view;
}

Read more in the official documentation.

163
3/13/2018 4:15:44 PM

LayoutInflater class is used to instantiate layout XML file into its corresponding View objects.

In other words, it takes as input an XML file and builds the View objects from it.


Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon