我正在爲我的ListView使用自定義適配器,以擴充每個列表項目的佈局。對於每個列表項目,佈局中都有一個按鈕,允許用戶從列表視圖中刪除項目。還有一個用戶輸入的編輯文本。我遇到了一些問題,當填充編輯文本時,但用戶刪除該項目時,該值將轉到其下面列表項的編輯文本。例如,如果列表視圖的位置1中的編輯文本的值爲'25',則用戶單擊以刪除該項目,值'25'將移至位置1中的新項目。使用客戶適配器的ListView將編輯文本值從已刪除項目移至下一項目
我的適配器類別
public class PartOrderAddPartAdapter extends ArrayAdapter<Part> {
private static final int layoutResourceId = R.layout.part_information_list_item;
private List<Part> partList;
private final Context context;
public PartOrderAddPartAdapter(Context context, List<Part> partList) {
super(context, layoutResourceId, partList);
this.context = context;
this.partList = partList;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
LayoutInflater inflater = LayoutInflater.from(context);
view = inflater.inflate(layoutResourceId, null);
}
Part p = getItem(position);
TextView partNumber = (TextView) view.findViewById(R.id.part_number);
TextView partDescription = (TextView) view.findViewById(R.id.part_description);
EditText quantity = (EditText) view.findViewById(R.id.quantity);
Button removePartButton = (Button) view.findViewById(R.id.remove_part_button);
partNumber.setText(p.getPartNumber());
partDescription.setText(p.getDescription());
removePartButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
partList.remove(position);
notifyDataSetChanged();
}
});
return view;
}
@Override
public Part getItem(int position) {
return partList.get(position);
}
}