我有一个从服务器填充的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);

10-07 22:22