1. 程式人生 > >收藏、點贊按鈕 怎麼由當前的狀態(收藏/取消收藏)通過點選設定為取消收藏(收藏)

收藏、點贊按鈕 怎麼由當前的狀態(收藏/取消收藏)通過點選設定為取消收藏(收藏)

看到這裡,我是想介紹我對這個收藏按鈕(五角星),反覆點選來迎合使用者體驗的。那怎麼滿足反覆點選設定狀態呢?

要求是這樣的:我點選收藏按鈕(假設:原先的收藏按鈕是未收藏狀態(暗色)),當我點選過收藏的時候,按鈕被點亮為橙色。當我再次對其點選的時候,當然,我要知道此時的收藏按鈕的當前狀態(是暗色呢?還是被點亮的)。然後,根據此時狀態對其設定其相對的狀態。

有很多的朋友,使用標誌位,對其設定一個狀態位。比如,讓 1 (已收藏) 0(未收藏),每次點選後通過該按鈕上次已經設定的那個標誌位來再次設定點選後的狀態;或者更為複雜的方式。我覺得確實很複雜,所以想了又想,最終聰明的我,想到了一個好辦法!

這個是基於我的專案來講的哦!

在對後臺請求資料的時候,比如上面的最新劇本的資料。那麼我獲取到的一定是一個List<DramaBookBean>,然後在DramaBookBean中有這些屬性:圖片的url 、 劇本的名字 、 簡單介紹、 型別 、 價格 、 收藏按鈕的狀態。注意:有收藏按鈕的狀態這個屬性哦!那麼就好辦了,不用什麼標誌位設定,都過於煩淫。我們應該充分的利用那個從後臺請求來的收藏按鈕的狀態值。這樣做:起初,進來的時候(在介面卡中)通過按鈕的狀態值判斷在這個listview顯示的時候ta應該是怎麼個狀態,並通過狀態值判斷後進行狀態設定。然後,當我們對其進行點選的時候,假設:原先是暗色未收藏的狀態。點選時候,先判斷(此時狀態值為未收藏),通過從後臺請求來的狀態值判斷後來設定其為收藏的狀態。同時,使用介面卡下DramaBookBean同步更新其對應的item下的按鈕的收藏狀態。當然,整個操作流程還沒有完,這個只是在介面卡中,而當其在呼叫ta的activity中,通過介面回撥監聽點選事件,在該Activity中進行提交資料到伺服器同步資料的時候,由於網路的偶然問題,成功或者失敗都要在此時此地同步更新兩個物件(介面卡中DramaBookBean物件的按鈕收藏的狀態值 和 Activity中DramaBookBean物件的按你家收藏狀態值)收藏狀態的值;

這樣,也就是說:每當我操作一次時候,在與此相關的DramaBookBean(adapter中、acitivity中)都要同步更新收藏按鈕的狀態值,以便再次進行點選操作的時候可以獲得並依據當前已經顯示的狀態,來設定點選操作後應該顯示的狀態!