【发布时间】:2014-04-02 07:57:01
【问题描述】:
我正在努力更新自定义列表视图中连续一个按钮的图像。我为列表视图创建了一个自定义适配器类。单击一行列表视图中的按钮时,我打开了一个自定义对话框。 Onclick 对话框的 OK 按钮 现在我想更改该列表视图中按钮的图像。
目前我刚刚在列表视图中制作了静态按钮,并将该按钮的对象传递给自定义对话框方法。我使用的是简单的列表视图而不是片段。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final ItemInfoViewHolder viewHolder;
Log.d("Inside Get View", ""+position);
if (convertView == null) {
convertView = listInflater.inflate(R.layout.iteminfo_view_row, null);
viewHolder = new ItemInfoViewHolder();
viewHolder.itemSelection = (Button)convertView.findViewById(R.id.itemselectionTextview);
convertView.setTag(viewHolder);
}else{
viewHolder = (ItemInfoViewHolder)convertView.getTag();
}
try{
viewHolder.itemSelection.setId(itemsInfo.get(position).getId());
);
viewHolder.itemSelection.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("Item Id"+v.getId());
Toast.makeText(mContext, "Item Button Clicked", Toast.LENGTH_SHORT).show();
int itemId = v.getId();
SelectPopup selectPopup = new SelectPopup(mContext, R.style.myCoolDialog);
selectPopup.selectQuantity(itemsInfo,itemId,viewHolder.itemSelection);
}
});
}catch(Exception e){
e.printStackTrace();
}
return convertView;
}
这里 viewHolder.itemSelection 是我传递给自定义对话框方法的那个按钮的对象。通过这种方式,图像在任何行的列表视图上随机更新。
请建议我一些更好的想法来做到这一点。
【问题讨论】:
-
你能发布你完整的getView方法吗?问题是您应该更改适配器后面的数据模型,并让 ListView 基于此更新自己,而不是自己直接更改视图。
-
@DroidBender 我已经粘贴了整个 getview 代码。我还在其他类 SelectPopup 中创建了自定义对话框并调用了该类的方法。
标签: android android-listview android-dialog