on单击作为列表视图的一个项目的图像视图,在自定义适配器的 onClick() 方法中,我想获取列表视图的所有行



>我有一个列表视图,其中有一个图像视图作为项目。我已经为列表视图使用了自定义适配器。当我在列表视图中单击某个项目的图像视图时,它会将我带到自定义适配器中的 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 条记录

建议:您可以改用回收器视图,这样对开发人员更友好且内存效率更高。

据我了解,您必须在每次单击时更新列表视图中项目的外观。这可以使用adapter.notifyDataSetChanged((来完成。

逻辑:使用布尔标记标记每个视图的计数。那些具有 true 的将被启用,而具有 false 的将淡出。最初,一切都是错误的。用户单击某个项目后,将该特定项目标记更改为 true,然后调用 adapter.notifyDataSetChanged((。它应该按预期工作。

最新更新