[问题] ListView如何动态改变item的属性

楼主: bengohard (我的歌声里)   2014-10-22 11:49:06
问题:我有一个ListView,我想做到按一个Button后,把此ListView里某item的属性改变,
请问该怎么做(不使用onItemClick)? 此ListView使用了一个SimpleAdapter.
我试过以下的方法无效,虽然取的到属性值,但无法改变属性值,为何?
View view = Adapter.getView(0, ListView.getChildAt(0), ListView);
ImageView img = (ImageView)view.findViewById(R.id.ID_Image);
int vis = img.getVisibility(); //值正确
img.setVisibility(View.INVISIBLE); //改变此值但无作用
Adapter.notifyDataSetChanged();
//再抓一次值结果还是原本的值 >"<
View view = Adapter.getView(0, ListView.getChildAt(0), ListView);
ImageView img = (ImageView)view.findViewById(R.id.ID_Image);
int v = img.getVisibility();
作者: nobody1 (无事家中坐)   2014-10-22 12:26:00
值在dataset里 Adapter.notifyDataSetChanged 就变回去
楼主: bengohard (我的歌声里)   2014-10-22 14:00:00
懂你的意思,但如果是view存在哪里呢?要怎么变更属性?
作者: givemepass (λ)   2014-10-22 14:52:00
建议改用baseadapter, 另外你要控制的是data而不是view
楼主: bengohard (我的歌声里)   2014-10-22 15:24:00
请教楼上,我要改的是view的属性,为什么是控制data@@?
作者: givemepass (λ)   2014-10-22 17:04:00
因为由data更改资料来影响view, 而不是直接改变view才是比较好的做法, 晚上回家写个饭粒给你
作者: nobody1 (无事家中坐)   2014-10-22 17:20:00
view是把值呈现出来的容器 当值有所变化时绑定的物件也会随之调整 你要多了解一下语言特性 才回过硕来看程式
作者: JULONE780701 (亚)   2014-10-22 19:43:00
因为你最后又下了一次Adapter.notifyDataSetChanged就变回原样了啊

Links booklink

Contact Us: admin [ a t ] ucptt.com