Imageview的onClick是Listview的一项,在自定义适配器的onClick()方法中,我想获取Listview的所有行

时间:2019-09-30 10:47:39

标签: android listview imageview

我有一个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条记录

1 个答案:

答案 0 :(得分:0)

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

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

逻辑:使用布尔标记在每个视图中标记计数。具有true的将被启用,具有false的将被淡出。最初,一切都是假的。用户单击一个项目后,将该特定项目标签更改为true,然后调用adapter.notifyDataSetChanged()。它应该可以正常工作。