我做了一个列表视图,你可以通过触摸该列表视图的行来删除一个项目,但它总是删除最后一个项目,并且在一些删除时间后它显示索引超出范围错误
系统是当您触摸一个项目时,打开一个对话框,您单击打印,然后项目将删除该项目并打开一个活动几秒钟。
这是列表适配器类
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final int positionplayer = position;
ViewHolderaway1 holder;
if (convertView == null) {
View row = inflater.inflate(R.layout.readonlyvendorlist, parent,
false);
row.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// set title
try {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
context);
alertDialogBuilder.setTitle(values.get(positionplayer).Voucherref
+ " Sell");
// set dialog message
alertDialogBuilder
.setMessage(
values.get(positionplayer)
.getVoucherref() + "For Print")
.setCancelable(false)
.setPositiveButton("Print Voucher",
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog,
int id) {
// if this button is clicked,
// close
PrintTestAcitvity.printettext = values
.get(positionplayer).PrinterText;
ListService.printerlist
.remove(positionplayer);
Datasync.storedataprint(context);
notifyDataSetChanged();
Intent ia = new Intent(context,
PrintTestAcitvity.class);
context.startActivity(ia);
}
})
.setNegativeButton("Cancell",
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog,
int id) {
// if this button is clicked,
// just close
// the dialog box and do nothing
Toast.makeText(
context,
"Printing Data store for locally",
Toast.LENGTH_LONG)
.show();
dialog.cancel();
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();
} catch (IndexOutOfBoundsException e) {
// TODO: handle exception
notifyDataSetChanged();
}
}
});
holder = new ViewHolderaway1();
holder.ProductItemID = (TextView) row
.findViewById(R.id.ProductItemID);
holder.VoucherCost = (TextView) row.findViewById(R.id.VoucherCost);
holder.SupplierID = (TextView) row.findViewById(R.id.SupplierID);
Log.d("goru", "gadha");
row.setTag(holder);
holder = (ViewHolderaway1) row.getTag();
// Printer Productsdata = values.get(positionplayer);
// if (Productsdata != null) {
// holder.ProductItemID.setText("Print");
// holder.VoucherCost.setText(Productsdata.getVoucherref());
// // holder.SupplierID.setText(resid)
// // holder.SupplierID.setVisibility(View.GONE);
//
// if (Productsdata.getVoucherref().contains("Voda")) {
// holder.VoucherCost.setBackgroundColor(Color.RED);
// holder.VoucherCost.setTextColor(Color.WHITE);
// holder.SupplierID.setBackgroundDrawable(getContext()
// .getResources().getDrawable(R.drawable.voda));
// }
// if (Productsdata.getVoucherref().contains("Eco")) {
// holder.VoucherCost.setBackgroundColor(Color.BLUE);
// holder.VoucherCost.setTextColor(Color.WHITE);
// holder.SupplierID.setBackgroundDrawable(getContext()
// .getResources().getDrawable(R.drawable.eco));
// }
//
// }
convertView = row;
}else
{
holder = (ViewHolderaway1) convertView.getTag();
}
Printer Productsdata = values.get(positionplayer);
if (Productsdata != null) {
holder.ProductItemID.setText("Print");
holder.VoucherCost.setText(Productsdata.getVoucherref());
// holder.SupplierID.setText(resid)
// holder.SupplierID.setVisibility(View.GONE);
if (Productsdata.getVoucherref().contains("Voda")) {
holder.VoucherCost.setBackgroundColor(Color.RED);
holder.VoucherCost.setTextColor(Color.WHITE);
holder.SupplierID.setBackgroundDrawable(getContext()
.getResources().getDrawable(R.drawable.voda));
}
if (Productsdata.getVoucherref().contains("Eco")) {
holder.VoucherCost.setBackgroundColor(Color.BLUE);
holder.VoucherCost.setTextColor(Color.WHITE);
holder.SupplierID.setBackgroundDrawable(getContext()
.getResources().getDrawable(R.drawable.eco));
}
}
return convertView;
}