Aktion einer Nachricht hinzufügen

Schreiben Sie jetzt
Jetpack Compose ist das empfohlene UI-Toolkit für Android. Weitere Informationen zum Hinzufügen von Benachrichtigungen in „Schreiben“
<ph type="x-smartling-placeholder"></ph> Snackbar →

Sie können einer Snackbar damit der Nutzer auf Ihre Nachricht antworten kann. Wenn Sie dies tun, Snackbar blendet eine Schaltfläche neben dem Nachrichtentext ein und der Nutzer kann die Aktion durch Tippen auf die Schaltfläche. Eine E-Mail-App könnte beispielsweise Schaltfläche Rückgängig machen unter „E-Mail archiviert“ angezeigt. Wenn Nutzende das Symbol Rückgängig machen klicken, entfernt die App die E-Mail wieder aus dem Archiv.

<ph type="x-smartling-placeholder">
</ph> Ein Bild, das eine Snackbar mit der Aktionsschaltfläche „Rückgängig machen“ zeigt <ph type="x-smartling-placeholder">
</ph> Abbildung 1: Ein Snackbar mit einer Schaltfläche zum Rückgängigmachen der Aktion, die stellt ein entferntes Element wieder her.

Wenn Sie einer Snackbar-Nachricht eine Aktion hinzufügen möchten, definieren Sie ein Listener-Objekt das die View.OnClickListener . Das System ruft die Methode onClick() wenn der Nutzer auf die Nachrichtenaktion tippt. Dieses Snippet zeigt beispielsweise Listener für die Aktion "Rückgängig machen":

Kotlin

class MyUndoListener : View.OnClickListener {

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

Java

public class MyUndoListener implements View.OnClickListener {

    @Override
    public void onClick(View v) {

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

Verwenden Sie eine der setAction() , um den Listener an Snackbar anzuhängen. Hängen Sie vor dem Anruf zuhören show(), wie in diesem Codebeispiel gezeigt:

Kotlin

val mySnackbar = Snackbar.make(findViewById(R.id.myCoordinatorLayout),
                               R.string.email_archived, Snackbar.LENGTH_SHORT)
mySnackbar.setAction(R.string.undo_string, MyUndoListener())
mySnackbar.show()

Java

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();
Wenn Sie Jetpack Compose verwenden, können Sie SnackbarHost, Dies wird im folgenden Beispiel gezeigt:

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") }
                  }
              )
          }
      }
  }
  
<ph type="x-smartling-placeholder">