看板 AndroidDev 關於我們 聯絡資訊
問題:我有一個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(); -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.146.47.46 ※ 文章網址: http://www.ptt.cc/bbs/AndroidDev/M.1413949751.A.2CC.html
nobody1: 值在dataset裡 Adapter.notifyDataSetChanged 就變回去 10/22 12:26
bengohard: 懂你的意思,但如果是view存在哪裡呢?要怎麼變更屬性? 10/22 14:00
givemepass: 建議改用baseadapter, 另外你要控制的是data而不是vie 10/22 14:52
givemepass: w 10/22 14:52
※ 編輯: bengohard (122.146.47.46), 10/22/2014 15:23:13
bengohard: 請教樓上,我要改的是view的屬性,為什麼是控制data@@? 10/22 15:24
givemepass: 因為由data更改資料來影響view, 而不是直接改變view才 10/22 17:04
givemepass: 是比較好的做法, 晚上回家寫個飯粒給你 10/22 17:04
nobody1: view是把值呈現出來的容器 當值有所變化時綁定的物件也 10/22 17:20
nobody1: 會隨之調整 你要多了解一下語言特性 才回過碩來看程式 10/22 17:21
JULONE780701: 因為你最後又下了一次Adapter.notifyDataSetChanged 10/22 19:43
JULONE780701: 就變回原樣了啊 10/22 19:43