当我稍微向下滚动列表视图并再次向上滚动时,已经超出视图的行会丢失值(edittext),请参阅下面的图像: [直接从htc m7智能手机拍摄的照片]
当我对焦并显示键盘时,值会恢复原样!
我不需要textwatcher,因为编辑的值来自我的静态数组。
这是我的适配器:
public class SearchableItemsAdapter extends BaseAdapter implements Filterable
{
ArrayList<MyInvoiceItems> filteredData = new ArrayList<MyInvoiceItems>();
MyInvoiceItems temp;
private ItemFilter mFilter;
private LayoutInflater mInflater;
//
public SearchableItemsAdapter(Context context, ArrayList<MyInvoiceItems> data) {
filteredData = data;
mInflater = LayoutInflater.from(context);
}
//
public int getCount() {
return filteredData.size();
}
//
public Object getItem(int position) {
return filteredData.get(position);
}
//
public long getItemId(int position) {
return position;
}
//
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolderItems itemsholder;
if(convertView==null)
{
convertView=mInflater.inflate(R.layout.lstcstmrinvoicepopupitems,parent,false);
itemsholder=new ViewHolderItems();
itemsholder.iTaken=(CheckBox) convertView.findViewById(R.id.inv_popupTaken);
itemsholder.iName=(TextView) convertView.findViewById(R.id.inv_popupName);
itemsholder.iQuan=(EditText) convertView.findViewById(R.id.inv_popupQuan);
itemsholder.iPrice=(EditText) convertView.findViewById(R.id.inv_popupPrice);
itemsholder.iTotal=(TextView) convertView.findViewById(R.id.inv_popupTotal);
convertView.setTag(itemsholder);
}
else
{
itemsholder=(ViewHolderItems) convertView.getTag();
}
if(filteredData!=null) {
itemsholder.iTaken.setChecked(false);
if (filteredData.get(position).getTaken() == 1)
itemsholder.iTaken.setChecked(true);
itemsholder.iName.setText(filteredData.get(position).getItem_desc());
itemsholder.iQuan.setText(filteredData.get(position).getItem_num().toString());
itemsholder.iPrice.setText(filteredData.get(position).getItem_cost().toString());
itemsholder.iTotal.setText(filteredData.get(position).getAmountTotal());
}
//---
return convertView;
}
//
public class ViewHolderItems {
CheckBox iTaken;
TextView iName;
EditText iQuan;
EditText iPrice;
TextView iTotal;
}
}
顺便说一下,有人知道为什么有两个闪烁的游标(在第5个数字之前和之后的第二个图像)?
答案 0 :(得分:0)
最后经过两天的战斗,并在互联网上寻找解决方案,我认为我的代码存在问题(可能是适配器)但实际上这种行为的主要原因是代表我列表中每一行的.xml设计,我为每个组件使用了一个表,并将其更改为RelativeLayout并将每个控件直接放在RelativeLayout上它作为魅力,我不相信.xml布局的设计可能会影响我的视图。但我从这个问题中学到了很多东西:-)