/** * 点赞功能 * * @param position 点击控件所对应item的位置 */ public void praise(final int position) { post = list.get(position); // 查询喜欢这个帖子的所有用户,因此查询的是用户表 queryAllPrasieUsers(); // 先得到帖子的点赞数 int count = post.getPraiseCount(); // Log.i(TAG,"currentUser="******"praiseCount"); tv_praise.setText("" + (count + 1)); // if(!praiseUsers.contains(currentUser)){ // //判断当前user是否赞过 // Log.i(TAG, "当前用户有赞过,取消赞"); // //赞过,要取消赞 // post.increment("praiseCount", -1); // BmobRelation relation=new BmobRelation(); // relation.remove(currentUser); // post.setLikes(relation); // //取消赞之后判断赞的数量 // if(post.getPraiseCount()==0){ // btn_praise.setBackgroundResource(R.drawable.praise_normal); // tv_praise.setText("赞"); // post.setIsPraise(false); // }else{ // btn_praise.setBackgroundResource(R.drawable.praise_press); // tv_praise.setText("" + post.getPraiseCount()); // } // }else{ // //当前用户没有赞过,点赞 // Log.i(TAG, "当前用户没有赞过,点赞"); // btn_praise.setBackgroundResource(R.drawable.praise_press); // post.increment("praiseCount"); // tv_praise.setText("" + post.getPraiseCount()); // BmobRelation relation=new BmobRelation(); // //将点赞的人添加到集合中 // relation.add(currentUser); // post.setLikes(relation); // } } else { Log.i(TAG, "无赞,点赞"); post.increment("praiseCount"); tv_praise.setText("" + (count + 1)); btn_praise.setBackgroundResource(R.drawable.praise_press); post.setIsPraise(true); // BmobRelation relation=new BmobRelation(); // //将点赞的人添加到集合中 // relation.add(currentUser); // post.setLikes(relation); } post.update( context, new UpdateListener() { @Override public void onFailure(int arg0, String arg1) {} @Override public void onSuccess() { // 查找出更新后的内容,否则界面不会改变 BmobQuery<Post> query = new BmobQuery<Post>(); query.addWhereEqualTo("objectId", post.getObjectId()); query.addQueryKeys("praiseCount"); query.findObjects( context, new FindListener<Post>() { @Override public void onSuccess(List<Post> list) { post.setPraiseCount(list.get(0).getPraiseCount()); notifyItemChanged(position, null); } @Override public void onError(int i, String s) {} }); } }); }