我正在尝试在快餐栏中设置操作。我有以下代码:
Snackbar.make(cb,lvMain.getChildCount()+" hotspots selected.",Snackbar.LENGTH_INDEFINITE).setAction("COPY TO",mOnClickListener).setActionTextColor(Color.RED).show();
如何声明监听器" mOnClickListener"为了行动?
答案 0 :(得分:5)
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();
答案 1 :(得分:0)
在View.OnClickListener mOnClickListener;
中将Activity
声明为类变量,
public class MainActivity extends AppCompatActivity {
View.OnClickListener mOnClickListener;
// extra codes
}
然后你可以这样做,
mOnClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
//Handle onclick here
}
};
有关完整示例,请参阅here。
答案 2 :(得分:0)
我看到缺少Kotlin方式,所以我想加2美分:
Snackbar.make(view, "", Snackbar.LENGTH_INDEFINITE).apply {
setAction(R.string.dismiss) { this.dismiss() }
show()
}
令人高兴的是apply
设置了多余的变量来关闭不需要的小吃吧
apply
还会返回通过的所有内容,因此您可以apply{...}.show()