Mesaja işlem ekleme

Oluşturma yöntemini deneyin
Android için önerilen kullanıcı arayüzü araç seti Jetpack Compose'dur. Oluştur'a nasıl bildirim ekleyeceğinizi öğrenin.

Kullanıcının mesajınıza yanıt vermesine izin vermek için Snackbar'e bir işlem ekleyebilirsiniz. Bunu yaptığınızda Snackbar, mesaj metninin yanına bir düğme ekler ve kullanıcı düğmeye dokunarak işleminizi tetikleyebilir. Örneğin, bir e-posta uygulaması "e-posta arşivlendi" mesajına bir geri alma düğmesi ekleyebilir. Kullanıcı geri al düğmesine dokunduğunda uygulama, e-postayı arşivden çıkarır.

Geri alma işlem düğmesi içeren bir bilgi çubuğu gösteren resim
Şekil 1. Kaldırılan bir öğeyi geri yükleyen bir geri alma işlemi düğmesi içeren Snackbar.

Snackbar mesajına işlem eklemek için View.OnClickListener arayüzünü uygulayan bir dinleyici nesnesi tanımlayın. Kullanıcı mesaj işlemine dokunursa sistem, dinleyicinizin onClick() yöntemini çağırır. Örneğin, bu snippet'te geri alma işlemi için bir dinleyici gösterilmektedir:

KotlinJava
class MyUndoListener : View.OnClickListener {

  fun onClick(v: View) {
    // Code to undo the user's last action.
  }
}
public class MyUndoListener implements View.OnClickListener {

    @Override
    public void onClick(View v) {

        // Code to undo the user's last action.
    }
}

Dinleyiciyi Snackbar'inize eklemek için setAction() yöntemlerinden birini kullanın. Bu kod örneğinde gösterildiği gibi, show() işlevini çağırmadan önce dinleyiciyi ekleyin:

KotlinJava
val mySnackbar = Snackbar.make(findViewById(R.id.myCoordinatorLayout),
                               R.string.email_archived, Snackbar.LENGTH_SHORT)
mySnackbar.setAction(R.string.undo_string, MyUndoListener())
mySnackbar.show()
Snackbar mySnackbar = Snackbar.make(findViewById(R.id.myCoordinatorLayout),
        R.string.email_archived, Snackbar.LENGTH_SHORT);
mySnackbar.setAction(R.string.undo_string, new MyUndoListener());
mySnackbar.show();
Jetpack Compose kullanıyorsanız aşağıdaki örnekte gösterildiği gibi bir SnackbarHost gösterebilirsiniz:
Kotlin
    override fun onCreate(savedInstanceState: Bundle?) {

      super.onCreate(savedInstanceState)

      setContent {
          DACPlaygroundTheme {
              val snackbarHostState = remember { SnackbarHostState() }
              val scope = rememberCoroutineScope()
              Scaffold(
                  snackbarHost = { SnackbarHost(snackbarHostState) },
                  content = { padding ->
                      Button(
                          modifier = Modifier.padding(padding),
                          onClick = {
                              scope.launch {
                                  snackbarHostState.showSnackbar(
                                      message = "1 item removed",
                                      actionLabel = "UNDO",
                                      duration = SnackbarDuration.Short
                                  ).run {
                                      when (this) {
                                          Dismissed -> Log.d("SNACKBAR", "Dismissed")
                                          ActionPerformed -> Log.d("SNACKBAR", "UNDO CLICKED")
                                      }
                                  }
                              }
                          }
                      ) { Text("Show snackbar") }
                  }
              )
          }
      }
  }