我有一个从服务器填充的listView。在ListItem的onClick中,我显示一个x秒钟的按钮,并使它再次不可见。每次调用onClick时如何重置时间?
这是我的listItem onClick:
private void displayInCallButton() {
mButton.setEnabled(true);
if (canDisplayInCallControlls) {
canDisplayInCallControlls = false;
fadeInAnimation(mButton);
mButton.setEnabled(true);
mFrontView.postDelayed(new Runnable() {
public void run() {
fadeOutAnimation(mButton);
mButton.setEnabled(false);
hasAnimationEnded = true;
canDisplayInCallControlls = true;
}
}, 5000);
}
}
先感谢您。
最佳答案
您必须删除回调,并使用重置时间的新回调再次对其进行设置。
首先,像这样设置回电
Runnable myRunnable = new Runnable() {
@Override
public void run() {
fadeOutAnimation(mButton);
mButton.setEnabled(false);
hasAnimationEnded = true;
canDisplayInCallControlls = true;
}
};
然后将其设置为mFrontView
mFrontView.postDelayed(myRunnable,5000)
如果您想重置,请按照以下步骤操作
mFrontView.removeCallbacks(myRunnable);
mFrontView.postDelayed(myRunnable, 2000);