您好我的应用程序有一个扫描仪,如果代码不对应任何东西,它会显示一个小吃栏,询问用户是否要将扫描的产品添加到数据库中,只需单击小吃栏按钮,然后继续如果用户关闭LENGTH_INDEFINITE快餐栏,则进入主要活动,但是当我点击时,它也会执行ondismiss消息:
Snackbar.make(coordinatorLayoutView, "Aucun produit correspondant", Snackbar.LENGTH_INDEFINITE) //Si il n'y a pas de produit correspondant, affiche un snackbar qui propose de l'ajouter a la base de donnée
.setCallback(new Snackbar.Callback() {
@Override
public void onDismissed(Snackbar snackbar, int event) {
Log.i("Snack", "dismiss");
startActivity(new Intent(ScannerResultActivity.this, HomeActivity.class));
}
}).setAction("Ajouter", new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(ScannerResultActivity.this, ScannerResultAddProductActivity.class);
intent.putExtra("ean", getIntent().getStringExtra("ean"));
Log.i("Snack", "onclick");
startActivity(intent);
finish();
}
}).show();
答案 0 :(得分:4)
点击Snackbar
的操作时,系统会调用Snackbar
的{{1}}方法(因为onDismiss()
默认情况下会在点击时忽略动作),因此您的代码将首先调用Snackbar
方法,然后调用onClick()
方法。
答案 1 :(得分:-1)
为什么要使用Snackbar小部件呢?
您可以使用AlertDialog
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Do you want to add this to the database?")
.setCancelable(true)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//do things
}
});
AlertDialog alert = builder.create();
alert.show();