Что делает LayoutInflater в Android?

Какая польза от LayoutInflater в Android?

324
задан Pang 28 November 2014 в 21:06
поделиться

2 ответа

Когда вы используете пользовательское представление в ListView, вы должны определить расположение строк. Вы создаете xml, в котором размещаете виджеты android, а затем в коде адаптера вы должны сделать что-то вроде этого:

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;
}

Подробнее читайте в официальной документации.

164
ответ дан 23 November 2019 в 00:53
поделиться

Класс LayoutInflater используется для создания экземпляров содержимого XML-файлов макета в соответствующие им объекты View.

Другими словами, он принимает XML-файл в качестве входных данных и строит из него объекты View.

271
ответ дан 23 November 2019 в 00:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: