2015-12-27 15 views
0

我正在使用@ MrEngineer13的SnackBar implementation並想知道如何捕獲2個單獨的「ActionClick」事件 - 取決於actionclick事件發生的時間,我需要做不同的事情。使用MrEngineer13的SnackBar庫實現

建設者看起來是這樣的 -

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()

我什麼不能夠搞清楚的是,如何通過這種「象徵性」的時候,點擊發生

上有Builder,你可以用它來提供Parcelable一個withToken()方法傳遞到onMessageClick() 。話雖如此,JavaDocs將其描述爲「用於恢復SnackBar狀態的令牌」,這會讓我對搞亂SnackBar狀態感到有點緊張。

+0

謝謝,會給它一個鏡頭! – magicmushroom