问题:我有一个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 就变回去
懂你的意思,但如果是view存在哪里呢?要怎么变更属性?
建议改用baseadapter, 另外你要控制的是data而不是view
请教楼上,我要改的是view的属性,为什么是控制data@@?
因为由data更改资料来影响view, 而不是直接改变view才是比较好的做法, 晚上回家写个饭粒给你
作者: nobody1 (无事家中坐) 2014-10-22 17:20:00
view是把值呈现出来的容器 当值有所变化时绑定的物件也会随之调整 你要多了解一下语言特性 才回过硕来看程式
因为你最后又下了一次Adapter.notifyDataSetChanged就变回原样了啊