学了BaseAdapter优化问题,感觉还能优化一点,就自己写个方法想实验下,图片总是不能加载完全只有一张,有人帮我看看或者跟我说说conertView底层到底怎么回事,怎么就替代不了呢
public class baseAdapterActivity1 extends Activity{
LayoutInflater li;
ViewHolder vh=new ViewHolder();
ListView lv;
int []pp={R.drawable.b,R.drawable.bg4,R.drawable.m,R.drawable.m2,R.drawable.m3,R.drawable.m8,R.drawable.p,R.drawable.psb};
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.baselist);
lv=(ListView) findViewById(R.id.b_lv);
li=getLayoutInflater();
vh.cont=li.inflate(R.layout.b_item, null);
vh.tv=(TextView) vh.cont.findViewById(R.id.b_tv);
vh.iv=(ImageView) vh.cont.findViewById(R.id.b_iv);
lv.setAdapter(new BaseAdapter() {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View v=vh.cont;
vh.tv.setText("图片"+(position+1));
vh.iv.setImageResource(pp[position]);
System.out.println(position);
return v;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return pp.length;
}
});
lv.setOnItemClickListener(new OnItemClickListener() { @Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
Intent in=new Intent("look");
in.putExtra("pp", pp);
in.putExtra("p", arg2);
startActivity(in);
}
});
}
static class ViewHolder{
View cont;
TextView tv;
ImageView iv;
}
}BaseAdapter优化android
public class baseAdapterActivity1 extends Activity{
LayoutInflater li;
ViewHolder vh=new ViewHolder();
ListView lv;
int []pp={R.drawable.b,R.drawable.bg4,R.drawable.m,R.drawable.m2,R.drawable.m3,R.drawable.m8,R.drawable.p,R.drawable.psb};
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.baselist);
lv=(ListView) findViewById(R.id.b_lv);
li=getLayoutInflater();
vh.cont=li.inflate(R.layout.b_item, null);
vh.tv=(TextView) vh.cont.findViewById(R.id.b_tv);
vh.iv=(ImageView) vh.cont.findViewById(R.id.b_iv);
lv.setAdapter(new BaseAdapter() {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View v=vh.cont;
vh.tv.setText("图片"+(position+1));
vh.iv.setImageResource(pp[position]);
System.out.println(position);
return v;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return pp.length;
}
});
lv.setOnItemClickListener(new OnItemClickListener() { @Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
Intent in=new Intent("look");
in.putExtra("pp", pp);
in.putExtra("p", arg2);
startActivity(in);
}
});
}
static class ViewHolder{
View cont;
TextView tv;
ImageView iv;
}
}BaseAdapter优化android
li=getLayoutInflater(); //vh.tv=(TextView) vh.cont.findViewById(R.id.b_tv);
//vh.iv=(ImageView) vh.cont.findViewById(R.id.b_iv);
lv.setAdapter(new BaseAdapter() {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View v=convertView;
if(v==null){
v=li.inflate(R.layout.b_item, null);
vh.tv=(TextView) v.findViewById(R.id.b_tv);
vh.iv=(ImageView) v.findViewById(R.id.b_iv);
v.setTag(vh);
}
else
vh=(ViewHolder) v.getTag();
vh.tv.setText("图片"+(position+1));
vh.iv.setImageResource(pp[position]);
System.out.println(position);
return v;
}
convertView = li.inflate(R.layout.b_item, null);
vh.tv=(TextView) v.findViewById(R.id.b_tv);
vh = new ViewHolder();
vh.tv=(TextView) v.findViewById(R.id.b_tv);
vh.iv=(ImageView) v.findViewById(R.id.b_iv);
convertView.setTag(holder);
convertView.setTag(holder);
} else {
vh = (ViewHolder) convertView.getTag();
}
vh.tv.setText("图片"+(position+1));
vh.iv.setImageResource(pp[position]);
return convertView;
}// 单独的类ViewHolder
private class ViewHolder {
private TextView tv;
private ImageView iv;
}