我创建了可扩展列表,并且在每个项目中我有一个imageview
。当用户点击imageview
时,其资源应该更改为其他资源。例如当R.drawable.onalarm
是,用户点击后应该改为R.drawable.offalarm
。但是在团队崩溃之后。 imageview的资源返回到其以前的状态。我也更改可扩展列表的数据,但它不工作!这是我的清单适配器:折叠后更改了可扩展列表项目
private LayoutInflater inflater;
private List<GroupItem> items;
public void setData(List<GroupItem> items)
{
this.items = items;
}
@Override
public View getRealChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
final ChildHolder holder;
ChildItem item = getChild(groupPosition, childPosition);
if (convertView == null) {
holder = new ChildHolder();
convertView = inflater.inflate(R.layout.list_item, parent, false);
holder.title = (TextView) convertView.findViewById(R.id.textTitle);
holder.alarm = (ImageView) convertView.findViewById(R.id.alarm_imageview);
} else {
holder = (ChildHolder) convertView.getTag();
}
holder.title.setText(item.title);
holder.alarm.setImageResource(item.alarmid);
holder.alarm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ImageView iv = (ImageView) v;
if(iv.getDrawable().getConstantState().equals
(getResources().getDrawable(R.drawable.onalarm).getConstantState())) {
iv.setImageResource(R.drawable.offalarm);
items.get(groupPosition).items.get(childPosition).alarmid = R.drawable.offalarm;
setData(items);
}
else {
iv.setImageResource(R.drawable.onalarm);
items.get(groupPosition).items.get(childPosition).alarmid = R.drawable.onalarm;
setData(items);
}
}
});
return convertView;
}
我该怎么办? TNX
你试过使用notifyDatasetChanged()吗? – Bhargav
@Bhargav不,我没有尝试,现在我用它,工作正常。 TNX。输入您的评论作为答案 –