0

我正在使用@MrEngineer13 的SnackBar 实现,并且想知道如何捕获 2 个单独的“ActionClick”事件 - 根据 actionclick 事件发生的时间,我需要做不同的事情。

建造者看起来像这样 -

new SnackBar.Builder(this)
.withOnClickListener(this)
.withMessage("This library is awesome!") // OR
.withMessageId(messageId)
.withTypeFace(myAwesomeTypeFace)
.withActionMessage("Action") // OR
.withActionMessageId(actionMsgId)
.withTextColorId(textColorId)
.withBackGroundColorId(bgColorId)
.withVisibilityChangeListener(this)
.withStyle(style)
.withDuration(duration)
.show();`

并且 onMessageClick 采用“令牌”参数 -

@Override
public void onMessageClick(Parcelable token) {
     }

我无法弄清楚的是,当点击发生时如何传递这个“令牌”。

4

1 回答 1

1

根据actionclick事件发生的时间,我需要做不同的事情

在体内处理它onMessageClick()

@Override
public void onMessageClick(Parcelable token) {
  if (shouldIDoX()) {
    doX();
  }
  else {
    doY();
  }
}

(您提供shouldIDoX()doX()doY().

我无法弄清楚的是,当点击发生时如何传递这个“令牌”

有一个withToken()方法Builder,您可以使用它来提供Parcelable要传递到的onMessageClick()。话虽如此,JavaDocs 将其描述为“用于恢复 SnackBar 状态的令牌”,这会让我对弄乱它有点紧张。

于 2015-12-27T14:33:34.670 回答