问题描述
我想知道如何让小吃店拥有 onClickListener。这是一个简单的代码:
button.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
snackbar.make(v,"This is a snackBar",Snackbar.LENGTH_LONG)
.setTextColor(Color.BLUE)
.show();
}
});
我知道 setAction() 但我希望小吃栏本身成为我的点击按钮。我知道新的 androidx 支持库已经改变了很多我在网上找到的解决方案都不再有用了。
编辑:为什么这段代码不适用于它?
View view = snackbar.getView();
TextView text = view.findViewById(com.google.android.material.R.id.snackbar_text);
text.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
我通过在 onClickListner() 内编码小吃店对象而不是作为字段对象引入来解决我的问题。显然,我的主要问题与此更改有关。
解决方法
如果您说小吃店是指 android.support.design.widget.Snackbar,那么您可能需要使用 addCallback 方法,以便在解雇时收到通知。
snackbar.addCallback(new Snackbar.Callback() {
@Override
public void onDismissed(final Snackbar snackbar,final int event) {
...
}
});
将 event
参数与 static constants 进行比较以了解它是如何被取消的。