একটি বার্তা একটি কর্ম যোগ করুন

রচনা পদ্ধতি চেষ্টা করুন
জেটপ্যাক কম্পোজ হল Android এর জন্য প্রস্তাবিত UI টুলকিট। কম্পোজ এ কিভাবে বিজ্ঞপ্তি যোগ করতে হয় তা জানুন।

ব্যবহারকারীকে আপনার বার্তায় সাড়া দেওয়ার জন্য আপনি Snackbar একটি অ্যাকশন যোগ করতে পারেন। আপনি যখন এটি করেন, Snackbar বার্তা পাঠ্যের পাশে একটি বোতাম রাখে এবং ব্যবহারকারী বোতামটি আলতো চাপার মাধ্যমে আপনার ক্রিয়াটি ট্রিগার করতে পারে। উদাহরণস্বরূপ, একটি ইমেল অ্যাপ তার "ইমেল সংরক্ষণাগারভুক্ত" বার্তায় একটি পূর্বাবস্থায় ফেরার বোতাম রাখতে পারে। ব্যবহারকারী যদি পূর্বাবস্থায় ফেরার বোতামে ট্যাপ করে, অ্যাপটি ইমেলটিকে সংরক্ষণাগার থেকে ফিরিয়ে নিয়ে যায়।

একটি UNDO অ্যাকশন বোতাম সহ একটি স্ন্যাকবার দেখানো একটি চিত্র৷
চিত্র 1. একটি পূর্বাবস্থায় ক্রিয়া বোতাম সহ একটি Snackbar যা একটি সরানো আইটেম পুনরুদ্ধার করে৷

একটি Snackbar বার্তায় একটি ক্রিয়া যুক্ত করতে, একটি শ্রোতা অবজেক্ট সংজ্ঞায়িত করুন যা View.OnClickListener ইন্টারফেস প্রয়োগ করে। ব্যবহারকারী বার্তা অ্যাকশনে ট্যাপ করলে সিস্টেমটি আপনার শ্রোতার onClick() পদ্ধতিতে কল করে। উদাহরণস্বরূপ, এই স্নিপেটটি একজন শ্রোতাকে একটি পূর্বাবস্থায় ফেরানোর জন্য দেখায়:

কোটলিন

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.
    }
}

আপনার Snackbar শ্রোতাকে সংযুক্ত করতে setAction() পদ্ধতিগুলির একটি ব্যবহার করুন। এই কোড নমুনায় দেখানো হিসাবে show() কল করার আগে শ্রোতাকে সংযুক্ত করুন:

কোটলিন

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();
আপনি যদি জেটপ্যাক কম্পোজ ব্যবহার করেন, তাহলে আপনি একটি SnackbarHost দেখাতে পারেন, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে:

কোটলিন

    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") }
                  }
              )
          }
      }
  }