如何为 snackbar android 中的操作设置 Onclicklistener?

How to set Onclicklistener for actions in snackbar android?

我正在尝试在小吃店中设置操作。我有以下代码:

Snackbar.make(cb,lvMain.getChildCount()+" hotspots selected.",Snackbar.LENGTH_INDEFINITE).setAction("COPY TO",mOnClickListener).setActionTextColor(Color.RED).show();

如何为操作声明侦听器 "mOnClickListener"?

Snackbar snackbar = Snackbar
        .make(cb,lvMain.getChildCount()+" hotspots selected.",Snackbar.LENGTH_INDEFINITE)
        .setAction("COPY TO", new View.OnClickListener() {
            @Override
            public void onClick(View view) {

            }
        });

snackbar.show();

Activity中声明View.OnClickListener mOnClickListener;为class变量,

public class MainActivity extends AppCompatActivity {
    View.OnClickListener mOnClickListener;
   // extra codes
}

那你就可以这么干了,

   mOnClickListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //Handle onclick here
        }
    };

完整示例请参阅 here

我发现缺少 Kotlin 的方法,所以我想补充 2 美分:

Snackbar.make(view, "", Snackbar.LENGTH_INDEFINITE).apply {
    setAction(R.string.dismiss) { this.dismiss() }
    show()
}

好处是 apply 不需要额外的变量来关闭小吃店

apply 也 returns 无论它通过什么,你都可以 apply{...}.show()