我有一个列表视图,其中包含Product(productid,productname)+一个按钮
我正在填写下面的ArrayList。
ArrayList<Product> products = new ArrayList<Product>();
//fill products here
productAdapter adapter = new ProductAdapter(getApplicationContext(), products);
productListView.setAdapter(adapter);
productListView.setVisibility(View.VISIBLE);
现在在适配器
public View getView(final int position, View convertView, ViewGroup parent) {
// some other code
holder.btn_addtocart.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
products.get(position).setname("ABC");
}
});
}
问题是它没有立即更新。当我们向下滚动并向上滚动时它会发生变化。
为什么不立即更新listview?
如何解决这个问题?
答案 0 :(得分:1)
要刷新列表,您需要在更新数据后调用notifyDataSetChanged()
。
例如:
holder.btn_addtocart.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
products.get(position).setname("ABC");
notifyDataSetChanged();
}
});