Хочу задать элементы view не через xml а через программный код, но не знаю как правильно в convertView передать элементы view. Помогите пожалуйста разобраться.
Код: Выделить всё
public class ListCastAdapter extends BaseAdapter {
private Activity activity;
private ArrayList<Model> data;
private static LayoutInflater inflater=null;
Model hp;
public ListHitParadAdapter(Activity a, ArrayList<Model> d)
{
activity = a;
data=d;
inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;
ViewGroup vg=parent;
ViewHolder holder;
if(convertView==null)
{
vi = inflater.inflate(R.layout.listviewcast, null);
ImageView globalScreen = new ImageView(activity);
{
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
params.setMargins(0, 0, 0, 0);
globalScreen.setLayoutParams(params);
globalScreen.setBackgroundResource(R.drawable.ic_screen);
};
//тут магия, которая позволяет отобразить элементы группы view
}
else
holder=(ViewHolder)vi.getTag();
if(data.size()<=0)
{
}
else
{
hp=null;
hp = ( Model ) data.get( position );
holder.tv1.setText(hp.getText1());
holder.tv2.setText(hp.getText2());
holder.tv3.setText(hp.getText3());
holder.iv1.setImageBitmap(hp.getImage());
vi.setOnClickListener(new OnItemClickListener( position ));
}
return vi;
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
public static class ViewHolder {
public TextView tv1;
public TextView tv2;
public TextView tv3;
public ImageView iv1;
}
private class OnItemClickListener implements OnClickListener{
private int mPosition;
OnItemClickListener(int position){
mPosition = position;
}
@Override
public void onClick(View arg0) {
Parser sct = (Parser)activity;
sct.onItemClick(mPosition);
}
}
}