[問題] ListView如何動態改變item的屬性

看板AndroidDev作者 (我的歌聲裡)時間11年前 (2014/10/22 11:49), 11年前編輯推噓3(308)
留言11則, 4人參與, 最新討論串1/2 (看更多)
問題:我有一個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

10/22 12:26, , 1F
值在dataset裡 Adapter.notifyDataSetChanged 就變回去
10/22 12:26, 1F

10/22 14:00, , 2F
懂你的意思,但如果是view存在哪裡呢?要怎麼變更屬性?
10/22 14:00, 2F

10/22 14:52, , 3F
建議改用baseadapter, 另外你要控制的是data而不是vie
10/22 14:52, 3F

10/22 14:52, , 4F
w
10/22 14:52, 4F
※ 編輯: bengohard (122.146.47.46), 10/22/2014 15:23:13

10/22 15:24, , 5F
請教樓上,我要改的是view的屬性,為什麼是控制data@@?
10/22 15:24, 5F

10/22 17:04, , 6F
因為由data更改資料來影響view, 而不是直接改變view才
10/22 17:04, 6F

10/22 17:04, , 7F
是比較好的做法, 晚上回家寫個飯粒給你
10/22 17:04, 7F

10/22 17:20, , 8F
view是把值呈現出來的容器 當值有所變化時綁定的物件也
10/22 17:20, 8F

10/22 17:21, , 9F
會隨之調整 你要多了解一下語言特性 才回過碩來看程式
10/22 17:21, 9F

10/22 19:43, , 10F
因為你最後又下了一次Adapter.notifyDataSetChanged
10/22 19:43, 10F

10/22 19:43, , 11F
就變回原樣了啊
10/22 19:43, 11F
文章代碼(AID): #1KHoatBC (AndroidDev)
文章代碼(AID): #1KHoatBC (AndroidDev)