无法解决 Snackbar 中的方法 setAction() 错误

Can't resolve method setAction() error in Snackbar

我做了一个Snackbar的功能:

 void openSnackbar(String title){
            Snackbar
                    .make(findViewById(R.id.coordinatorLayout),
                            title,
                            Snackbar.LENGTH_LONG)
                    .setAction("",this)
                    .show();
    }

但是在 seAction() 方法中第二个参数作为 this 给出错误 you can't resolve method setAction(java.util.String,package.....)

如何解决这个问题?

But inside seAction() method second perameter as this giving error you can't resolve method setAction(java.util.String,package.....)

setAction 的第二个参数是实现 View.OnClickListener 的 class 的实例。如果编译器抱怨它,那是因为您的 class 没有实现该接口。

检查official javadoc

  setAction (CharSequence text, View.OnClickListener listener)

  Parameters:
    text        Text to display
    listener    callback to be invoked when the action is clicked

你可以这样使用:

  Snackbar
       .make(findViewById(R.id.coordinatorLayout),
             title,
             Snackbar.LENGTH_LONG)
       .setAction("", new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    //Your code
                }
            })
       .show();

否则你可以使用:

  Snackbar
       .make(findViewById(R.id.coordinatorLayout),
             title,
             Snackbar.LENGTH_LONG)
       .setAction("", myOnClickListener)
       .show();

myOnClickListener = new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        //Your code
                    }
                };

如果您想使用

.setAction("",this)

您的 class 必须实现 View.OnClickListener 接口。