如何设置在Recycler视图中双击单个视图项之间的时间

时间:2018-03-03 14:10:41

标签: android

我想在我的应用中添加类似的功能..比如 - 双击单个视图项目(如Instagram)

我想在用户完成双击之间设置时间。

我该怎么办?

这是我的onBindViewHolder()函数中的代码:

            //on clicking each view item

            holder.view.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    view_clicked++;

                    mLikeDatabase.addValueEventListener(new ValueEventListener() {
                        @Override
                        public void onDataChange(DataSnapshot dataSnapshot) {

                            if(view_clicked==2){

                                if(dataSnapshot.child(post_key).hasChild(mcurrent_user_id)){

                                    mLikeDatabase.child(post_key).child(mcurrent_user_id).removeValue();
                                    view_clicked=0;
                                }
                                else {
                                    mLikeDatabase.child(post_key).child(mcurrent_user_id).setValue("Random value");
                                    view_clicked=0;
                                }
                            }
                        }

                        @Override
                        public void onCancelled(DatabaseError databaseError) {

                        }
                    });
                }
            });

在我的ViewHolder类代码中看起来像:

     public void setLikeBtn(final String post_key) {

     mLikeDatabase.addValueEventListener(new ValueEventListener() {
         @Override
         public void onDataChange(DataSnapshot dataSnapshot) {

             if(dataSnapshot.child(post_key).hasChild(FirebaseAuth.getInstance().getCurrentUser().getUid())){
                 like.setImageResource(R.drawable.like_red);
                 String likes= String.valueOf(dataSnapshot.child(post_key).getChildrenCount());
                 like_count.setText(likes);
                 like_count.setVisibility(View.VISIBLE);
             }

             else {
                 like.setImageResource(R.drawable.like_grey);
                 String likes= String.valueOf(dataSnapshot.child(post_key).getChildrenCount());
                 like_count.setText(likes);
                 like_count.setVisibility(View.VISIBLE);
             }
         }

         @Override
         public void onCancelled(DatabaseError databaseError) {

         }
     });

1 个答案:

答案 0 :(得分:1)

如果我理解你正确,你想在每两个不同的双击之间设定时间。我可以想到几种方法:

  1. 您可以使用 sleep
  2. 
    
         try {
                    Thread.sleep(interval);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
    
    

    这将暂停应用程序的主线程并给你所请求的间隔(通知间隔以毫秒为单位,即interval = 1000将给你1秒钟。

    1. 您可以使用interval = 1000
    2. CountDownTimer

      双击后启动计时器,然后用户可以再次双击:

      CountDownTimer

      此外,我建议您阅读有关CountDownTimer here的更多信息。