简体   繁体   English

Snackbar动作getView()

[英]Snackbar action getView()

in my Activity I have implement OnClickListener interface 在我的Activity中,我实现了OnClickListener接口

MainActivity extends AppCompatActivity implements View.OnClickListener

init snackbar like this: init snackbar像这样:

snackbar = Snackbar.make(view, R.string.msg, Snackbar.LENGTH_LONG);
snackbar.setAction(R.string.action_undo, this);

but I cannot handle it on implemented OnClickListener interface method 但我无法在实现的OnClickListener接口方法上处理它

@Override
public void onClick(View v) {
    // this not work!
    // snackbar id is different from snackbar action id
    if (v.getId() == snackbar.getView().getId()) {

    }
}

Someone know how to get action view from snackbar? 有人知道如何从小吃店获取行动视图?

For every Snackbar , the Snackbar textview resource id is 对于每个SnackbarSnackbar textview资源ID为

    android.support.design.R.id.snackbar_text

And the Snackbar action view resource id is Snackbar动作视图资源ID是

    android.support.design.R.id.snackbar_action

If I correctly understood your question, you want to get the Snackbar action resource id. 如果我正确理解了您的问题,您希望获得Snackbar操作资源ID。 you can easily get that as I mentioned above and in onClick() , you can use it like - 你可以很容易地得到它,如上所述和onClick() ,你可以使用它像 -

@Override
public void onClick(View v) {

    if (v.getId() == android.support.design.R.id.snackbar_action) {

    }
}
v.getId()

is always (Reserved) : 总是(保留):

android.support.design.R.id.snackbar_action

Doc 文件

You can try this to set action on a 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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM