問題:我有一個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就變回原樣了啊