我有一个Listview,其中有一个imageview作为项目。我已经为列表视图使用了定制适配器。当我单击列表视图中某个项目的Imageview时,它将带我到自定义适配器中的onClick方法。在该onClick()方法中,我只想获取整个Listview,以便淡出除单击的列表行以外的其余列表行。我尝试了很多StackOverflow的答案,但没有一个对我有用。请帮忙。
这是自定义适配器中的onClick()方法
@Override
public void onClick(View v) {
int position=(Integer) v.getTag();
Object object= getItem(position);
DataModel dataModel=(DataModel)object;
switch (v.getId())
{
case R.id.album_overflow:
View myview=inflater.inflate(R.layout.content_scrolling,null);
myview = inflater.inflate(R.layout.content_scrolling,null);
ListView listview = myview.findViewById(R.id.list_myContent);
listView.setAdapter(this);
int count = listView.getChildCount();
Log.d("Adapter:onItemClick ", "listView.getChildCount : "+ listView.getChildCount());
break;
}
}
此子计数为0;而列表中有25条记录
答案 0 :(得分:0)
建议:您可以改用回收站视图,这对开发人员更友好且内存效率更高。
据我了解,您必须在每次单击中更新列表视图中项目的外观。可以使用adapter.notifyDataSetChanged()完成。
逻辑:使用布尔标记在每个视图中标记计数。具有true的将被启用,具有false的将被淡出。最初,一切都是假的。用户单击一个项目后,将该特定项目标签更改为true,然后调用adapter.notifyDataSetChanged()。它应该可以正常工作。