看到这里,我是想介绍我对这个收藏按钮(五角星),反复点击来迎合用户体验的。那怎么满足反复点击设置状态呢?
要求是这样的:我点击收藏按钮(假设:原先的收藏按钮是未收藏状态(暗色)),当我点击过收藏的时候,按钮被点亮为橙色。当我再次对其点击的时候,当然,我要知道此时的收藏按钮的当前状态(是暗色呢?还是被点亮的)。然后,根据此时状态对其设置其相对的状态。
有很多的朋友,使用标志位,对其设置一个状态位。比如,让 1 (已收藏) 0(未收藏),每次点击后通过该按钮上次已经设置的那个标志位来再次设置点击后的状态;或者更为复杂的方式。我觉得确实很复杂,所以想了又想,最终聪明的我,想到了一个好办法!
这个是基于我的项目来讲的哦!
在对后台请求数据的时候,比如上面的最新剧本的数据。那么我获取到的一定是一个List<DramaBookBean>,然后在DramaBookBean中有这些属性:图片的url 、 剧本的名字 、 简单介绍、 类型 、 价格 、 收藏按钮的状态。注意:有收藏按钮的状态这个属性哦!那么就好办了,不用什么标志位设置,都过于烦淫。我们应该充分的利用那个从后台请求来的收藏按钮的状态值。这样做:起初,进来的时候(在适配器中)通过按钮的状态值判断在这个listview显示的时候ta应该是怎么个状态,并通过状态值判断后进行状态设置。然后,当我们对其进行点击的时候,假设:原先是暗色未收藏的状态。点击时候,先判断(此时状态值为未收藏),通过从后台请求来的状态值判断后来设置其为收藏的状态。同时,使用适配器下DramaBookBean同步更新其对应的item下的按钮的收藏状态。当然,整个操作流程还没有完,这个只是在适配器中,而当其在调用ta的activity中,通过接口回调监听点击事件,在该Activity中进行提交数据到服务器同步数据的时候,由于网络的偶然问题,成功或者失败都要在此时此地同步更新两个对象(适配器中DramaBookBean对象的按钮收藏的状态值 和 Activity中DramaBookBean对象的按你家收藏状态值)收藏状态的值;
这样,也就是说:每当我操作一次时候,在与此相关的DramaBookBean(adapter中、acitivity中)都要同步更新收藏按钮的状态值,以便再次进行点击操作的时候可以获得并依据当前已经显示的状态,来设置点击操作后应该显示的状态!
收藏、点赞按钮 怎么由当前的状态(收藏/取消收藏)通过点击设置为取消收藏(收藏)
原文地址:http://blog.csdn.net/junhuahouse/article/details/41681081