Использование реализации библиотеки SnackBar в MrEngineer13
Я использую реализацию SnackBar @MrEngineer13, и мне было интересно, как захватить 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) {
}
Я не могу понять, как передать этот "токен", когда происходит щелчок.
1 ответ
в зависимости от того, когда происходит событие actionclick, мне нужно делать разные вещи
Обращайся в теле onMessageClick()
:
@Override
public void onMessageClick(Parcelable token) {
if (shouldIDoX()) {
doX();
}
else {
doY();
}
}
(где вы предоставляете соответствующие реализации shouldIDoX()
, doX()
, а также doY()
,
Я не могу понять, как передать этот "токен", когда происходит щелчок.
E сть withToken()
метод на Builder
что вы можете использовать для поставки Parcelable
быть переданным в onMessageClick()
, При этом JavaDocs описывают его как "токен, используемый для восстановления состояния SnackBar", что заставляет меня немного нервничать из-за того, что я могу с ним связываться.