如何检查按钮是否在 2 秒后被单击?
How to check if a button is clicked after 2 secs?
我有一个 android 应用程序可以将喜欢发送到服务器。
我想做的不是立即向服务器发送点赞,而是如果用户仍然喜欢 post,则在 2 秒后发送。
我喜欢void;
public void rotationAnimation(ImageView button, int source1, int source2){
if(isLikeClicked){
button.setImageResource(source1);
button.startAnimation(rotate_backward);
isLikeClicked = false;
}else{
button.setImageResource(source2);
button.startAnimation(rotate_forward);
isLikeClicked = true;
}
ChangeLikeCount();
if(isReadyToPost)
if(!isLikeClicked){
Like like = new Like();
like.execute(ServerCons.HOST + "unlike");
}else{
Like like = new Like();
like.execute(ServerCons.HOST + "like");
}
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// I thought the solution could be there
}
}, 2000);
}
您可以尝试创建一个休眠 2 秒的线程,然后它会检查用户是否仍然喜欢 post 然后更新您的数据库
使用 isReadyToPost
标记:
if(isReadyToPost){
isReadyToPost=false;
}else{
// try after 2 secs for next like
}
并在 Handler. postDelayed
中将 isReadyToPost
在 2 秒后更改为 true:
@Override
public void run() {
isReadyToPost=true;
}
isReadyToPost
默认值为 true
.
试试这个方法:
boolean isReadyToPost= false;
boolean liked = false;//control like click (witch)
public void onLikePressed() {
if (liked && isReadyToPost) {
sendLikeToServer();//send to server after 2 secs
return;
}
this.isReadyToPost= false;
Toast.makeText(this, "waiting for any dislike... in 2 secs", Toast.LENGTH_SHORT).show();
if (liked){
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
isReadyToPost=true;
onLikePressed();
}
}, 2000);
}//end if
} //end onlikepress
我有一个 android 应用程序可以将喜欢发送到服务器。
我想做的不是立即向服务器发送点赞,而是如果用户仍然喜欢 post,则在 2 秒后发送。
我喜欢void;
public void rotationAnimation(ImageView button, int source1, int source2){
if(isLikeClicked){
button.setImageResource(source1);
button.startAnimation(rotate_backward);
isLikeClicked = false;
}else{
button.setImageResource(source2);
button.startAnimation(rotate_forward);
isLikeClicked = true;
}
ChangeLikeCount();
if(isReadyToPost)
if(!isLikeClicked){
Like like = new Like();
like.execute(ServerCons.HOST + "unlike");
}else{
Like like = new Like();
like.execute(ServerCons.HOST + "like");
}
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// I thought the solution could be there
}
}, 2000);
}
您可以尝试创建一个休眠 2 秒的线程,然后它会检查用户是否仍然喜欢 post 然后更新您的数据库
使用 isReadyToPost
标记:
if(isReadyToPost){
isReadyToPost=false;
}else{
// try after 2 secs for next like
}
并在 Handler. postDelayed
中将 isReadyToPost
在 2 秒后更改为 true:
@Override
public void run() {
isReadyToPost=true;
}
isReadyToPost
默认值为 true
.
试试这个方法:
boolean isReadyToPost= false;
boolean liked = false;//control like click (witch)
public void onLikePressed() {
if (liked && isReadyToPost) {
sendLikeToServer();//send to server after 2 secs
return;
}
this.isReadyToPost= false;
Toast.makeText(this, "waiting for any dislike... in 2 secs", Toast.LENGTH_SHORT).show();
if (liked){
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
isReadyToPost=true;
onLikePressed();
}
}, 2000);
}//end if
} //end onlikepress