继承ArrayAdapter,重写getView时,convertView setTag与holder里addTextChangedListener同时存在出错
写了一个用gridView弄的课程表,因为item要可编辑,所以item里就一个EditText;
继承ArrayAdapter,ViewHolder只有EditText edit一个成员。
下面是getView 部分内容
ViewHolder holder = null;
if (convertView ==null){
holder = new ViewHolder();
LayoutInflater mInflater = LayoutInflater.from(context);
convertView = mInflater.inflate(R.layout.grid_item, null);
holder.edit = (EditText)convertView.findViewById(R.id.edit);
holder.edit.setTag(position);
class MyEditWatcher implements TextWatcher{
public MyEditWatcher(ViewHolder holder){
mHolder = holder;
}
private ViewHolder mHolder;
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
int pos = (Integer)mHolder.edit.getTag();
objects.set(pos, s.toString());
}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
// TODO Auto-generated method stub
}
public void onTextChanged(CharSequence s, int start,
int before, int count) {
// TODO Auto-generated method stub
}
}
holder.edit.addTextChangedListener(new MyEditWatcher(holder));
convertView.setTag(holder);
holder.edit.setText(objects.get(position).toString());
System.out.println("Suceed!");
经过测试,是在红色字体部分出错的,问题应该是出在MyEditWatche上,求高手帮忙解决一下,谢谢!