2016-04-12 28 views
0

Merhaba Uygulamamın bir tarayıcısı var ve kodun herhangi bir şeye karşılık gelmemesi durumunda, kullanıcılardan taranan ürünü atıştırmalık çubuğuna tıklama ile veritabanına eklemek isteyip istemediklerini soran bir snackbar gösteriliyor kullanıcı LENGTH_INDEFINITE snackbar görevden eğer ve ana faaliyeti olacak ama tıkladığımda, o da ondismiss mesaj yapın: bir Snackbar eylemini tıklandığında Snackbar 'ın onDismiss() yöntemSnackbar onclick do ondismiss eylemi

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(); 

cevap

4

olarak adlandırılır (Snackbar eylemi tıklatıldığında varsayılan olarak reddedildiğinden, kodunuz ilk önce onClick() yöntemini çağırır ve sonra da onDismiss() metodu.

+0

istediğim ya da ben bir AlertDialog kullanmalısınız istiyorum yapmak için herhangi bir yöntem var mı ile çok kolayca bunu? – Ggs

+0

Bir veya daha fazla eylemin gösterilmesini isteyip istemediğinize bağlıdır. Snackbarlar sadece bir eylem yapabilir. Bir eylemden fazlasını istiyorsanız, gerçekten de bir AlertDialog gibi bir şey kullanmayı düşünmelisiniz. – Jeffalee

0

Bunun için Snackbar parçacığını neden kullanıyorsunuz? Bir 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();