این متد احتمالاً در Adapter برای مثلاً ListView استفاده شده.
متد getView هربار که یک View جدید می خواد نمایش داده بشه صدا زده میشه.
پارامتر position، محل این view در دیتاست رو نشون میده، مثلاً در ListView این پارامتر index اون row رو نشون میده.
پارامتر convertView همون Viewی هست که نمایش داده میشه، درواقع این View ممکنه موجود باشه و یا یک View جدید ایجاد شده باشه (برای بهینه کردن در performance)
همیشه چک کنید که این مقدار null هست یا نه.
inflater که در کد بالا تعریف شده، میتونه یک Layout رو به View نسبت بده
فرض کنید قصد دارید یک ListView داشته باشید که شخصی سازیش کرده باشید، با کمک LayoutInflater میتونید این Layout رو به Viewنسبت بدید
مثلاً کد زیر رو درنظر داشته باشید:
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = myInflater.inflate(R.layout.list_adapter, parent,
false);
holder = new ViewHolder();
holder.tvName = (TextView) convertView.findViewById(R.id.tvName);
holder.infoImage = (ImageView) convertView
.findViewById(R.id.imageView1);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.tvName.setTypeface(yekan);
holder.tvName.setTag(list.get(position).getId());
holder.tvName.setText(list.get(position).getName() );
holder.infoImage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showInfoDialog(position);
}
});
if (position % 2 == 0) {
convertView.setBackgroundResource(R.drawable.grad_ blue);
} else {
convertView.setBackgroundResource(R.drawable.grad_ orange);
}
return convertView;
}
این کد رو برای شخصی سازی ListView استفاده کردم