-1

我做了一个 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.....)

如何解决这个问题呢?

4

2 回答 2

2

但是在 seAction() 方法的第二个参数中,因为这会给出错误,所以您无法解决方法 setAction(java.util.String,package.....)

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

于 2015-10-11T18:01:08.600 回答
1

检查官方 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)

你的类必须实现View.OnClickListener接口。

于 2015-10-11T18:10:40.680 回答