gpt4 book ai didi

android - 位置索引在 getView 中总是返回 0

转载 作者:太空宇宙 更新时间:2023-11-03 11:33:26 28 4
gpt4 key购买 nike

我想实现一个 ListView,它在每一行内都有 Delete Btn。

我唯一的问题是当我点击某行的删除按钮时,位置 0 的行刚刚被删除!

我想我在 getView 中的 Position 参数无法更新并且始终具有 0 值

我该怎么办?!

谢谢。

import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
//import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class InvoiceListAdapter extends BaseAdapter {

ArrayList<Object> _itemList;
public Activity _context;
public LayoutInflater _inflater;


public InvoiceListAdapter(Activity context,ArrayList<Object> itemList)
{
super();
this._context=context;
this._itemList=itemList;
this._inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

}
@Override
public int getCount() {
// TODO Auto-generated method stub
return _itemList.size();
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return _itemList.get(position);
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}

public static class ViewHolder
{
TextView ProductName;
TextView Qnt;
TextView Price;
Button Del;

}



@Override
public View getView(final int position, View convertView, ViewGroup parent) {

ViewHolder holder;
if(convertView==null)
{
holder = new ViewHolder();
convertView = _inflater.inflate(R.layout.custom_row_view, null);


holder.ProductName = (TextView) convertView.findViewById(R.id.txt_CRow_ProdName);
holder.Price = (TextView) convertView.findViewById(R.id.txt_CRow_Price);
holder.Qnt = (TextView) convertView.findViewById(R.id.txt_CRow_Qnt);
holder.Del = (Button) convertView.findViewById(R.id.btn_CRow_Delete);
/*-----------------------------Deleting Item with Button--------------------*/
holder.Del.setTag(holder);
holder.Del.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(_context,"Item Deleted!", Toast.LENGTH_SHORT).show();

_itemList.remove(position);
notifyDataSetChanged();

// TODO Auto-generated method stub

}
});

convertView.setTag(holder);
}
else
{
holder=(ViewHolder)convertView.getTag();
}

AnItem Item = (AnItem) _itemList.get(position);

holder.ProductName.setText(Item.getProductName());
holder.Price.setText(Item.getPrice());
holder.Qnt.setText(Item.getQnt());

return convertView;


}

最佳答案

您可能在 ScrollView 中有那个 ListView。我刚刚浪费了 2 个小时,直到我偶然发现了这个答案:

Why is my BaseAdapter class not incrementing the position in getView?

关于android - 位置索引在 getView 中总是返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19271099/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com