Java Snackbar操作getView()
在我的活动中,我实现了OnClickListener接口Java Snackbar操作getView(),java,android,snackbar,Java,Android,Snackbar,在我的活动中,我实现了OnClickListener接口 MainActivity扩展AppCompatActivity实现视图。OnClickListener 初始化snackbar如下所示: snackbar = Snackbar.make(view, R.string.msg, Snackbar.LENGTH_LONG); snackbar.setAction(R.string.action_undo, this); 但我无法在实现的OnClickListener接口方法上处理它 @Ov
MainActivity扩展AppCompatActivity实现视图。OnClickListener
初始化snackbar如下所示:
snackbar = Snackbar.make(view, R.string.msg, Snackbar.LENGTH_LONG);
snackbar.setAction(R.string.action_undo, this);
但我无法在实现的OnClickListener接口方法上处理它
@Override
public void onClick(View v) {
// this not work!
// snackbar id is different from snackbar action id
if (v.getId() == snackbar.getView().getId()) {
}
}
有人知道如何从snackbar获取操作视图吗?您可以尝试在snackbar上设置操作
View.OnClickListener snackbarClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
}
};
snackbar = Snackbar.make(view, R.string.msg, Snackbar.LENGTH_LONG);
snackbar.setAction(R.string.action_undo, snackbarClickListener);
对于每个
Snackbar
,都会显示Snackbar
textview资源id
android.support.design.R.id.snackbar_text
并且Snackbar
操作视图资源id为
android.support.design.R.id.snackbar_action
如果我正确理解了您的问题,您希望获得Snackbar
操作资源id。您可以很容易地获得该id,正如我在上面提到的那样,在onClick()
中,您可以像这样使用它-
@Override
public void onClick(View v) {
if (v.getId() == android.support.design.R.id.snackbar_action) {
}
}
始终(保留):
我的问题不是关于如何向snack添加操作,我需要知道如何获得:snack.getAction().getView(),如文档所示[Snackbar类没有
getAction
方法。你能解释更多的东西吗?你能告诉我这个的确切需要吗?这个的确切需要是漂亮的代码结构。很多可点击的视图都是由一个方法处理的,方法将View v作为输入参数,通过获取此视图的ID,我可以分离我的点击逻辑。但是snackbar缺少操作。getView()
v.getId()
android.support.design.R.id.snackbar_action