Snackbar
にアクションを追加することで、ユーザーがメッセージに対応できるようになります。Snackbar
にアクションを追加すると、Snackbar
によりメッセージ テキストの横にボタンが表示されます。ユーザーはボタンを押すとアクションをトリガーできます。たとえば、メールアプリで「アーカイブしたメール」のメッセージに「元に戻す」ボタンが配置される場合があります。「元に戻す」ボタンをクリックすると、アーカイブしたメールが元に戻ります。

図 1. このスナックバーには「元に戻す」ボタンがあり、削除されたばかりのアイテムを復元します。
Snackbar
メッセージにアクションを追加するには、View.OnClickListener
インターフェースを実装するリスナー オブジェクトを定義する必要があります。ユーザーがメッセージ アクションをクリックすると、リスナーの onClick()
メソッドが呼び出されます。たとえば、次のスニペットには「元に戻す」アクションのリスナーが示されています。
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 } }
いずれかの SetAction()
メソッドを使用して、リスナーを Snackbar
に接続します。次のコードサンプルに示すように、show()
を呼び出す前に必ずリスナーを接続してください。
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();
注: Snackbar
はしばらくすると自動的に消えるため、ユーザーにメッセージを表示したり、ボタンを押してもらったりすることは期待できません。このため、Snackbar
アクションを行う別の方法を用意することも検討してください。