首先,您必须创建ViewHolder类,其中包含listview项的所有TextView和Button.之后,使对象ViewHolder和该持有者对象初始化getView中的所有值,如TextView和Button.通过使用此技术,值不会在所有行中重复.
public class CustomAdapter extends ArrayAdapter<String>{
LayoutInflater vi;
LinearLayout l;
Activity c;
String i[];
ArrayList<Integer> n;
ViewHolder holder;
public CustomAdapter(Activity context, String[] i) {
super(context,R.layout.list_item, i);
// TODO Auto-generated constructor stub
this.c = context;
this.i = i;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder;
if (convertView == null) {
LayoutInflater layoutInflater = c.getLayoutInflater();
convertView = layoutInflater.inflate(R.layout.list_item, null);
holder = new ViewHolder();
holder.imageview = (ImageView) convertView.findViewById(R.id.img);
holder.btnAdd = (Button) convertView.findViewById(R.id.inc);
holder.txt = (TextView) convertView.findViewById(R.id.txt);
holder.l = (LinearLayout) convertView.findViewById(R.id.linear);
holder.btnAdd.setTag(holder);
convertView.setTag(holder);
holder.btnAdd.setOnClickListener(new View.OnClickListener() {
int count=0;
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
View p = (View) v.getParent();
ViewHolder holder1 = (ViewHolder) v.getTag();
count = Integer.valueOf(holder1.txt.getText().toString());
count++;
holder1.txt.setText(String.valueOf(count));
}
});
}
return convertView;
}
static class ViewHolder {
public ImageView imageview;
public Button btnAdd;
public TextView txt;
public LinearLayout l;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4240 次 |
| 最近记录: |