Использование реализации библиотеки 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", что заставляет меня немного нервничать из-за того, что я могу с ним связываться.

Другие вопросы по тегам