我想在我的应用中添加类似的功能..比如 - 双击单个视图项目(如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) {
}
});
答案 0 :(得分:1)
如果我理解你正确,你想在每两个不同的双击之间设定时间。我可以想到几种方法:
try {
Thread.sleep(interval);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
这将暂停应用程序的主线程并给你所请求的间隔(通知间隔以毫秒为单位,即
将给你1秒钟。interval = 1000
interval = 1000
:CountDownTimer
双击后启动计时器,然后用户可以再次双击:
CountDownTimer
此外,我建议您阅读有关CountDownTimer here的更多信息。