मैसेज में कार्रवाई जोड़ना

लिखने का तरीका आज़माएं
Android के लिए, Jetpack Compose हमारा सुझाया गया यूज़र इंटरफ़ेस (यूआई) टूलकिट है. Compose में सूचनाएं जोड़ने का तरीका जानें.

आप किसी कार्रवाई को Snackbar अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है ताकि लोग आपके मैसेज का जवाब दे सकें. ऐसा करने पर, Snackbar मैसेज टेक्स्ट के बगल में एक बटन लगाता है और उपयोगकर्ता यह काम कर सकता है कार्रवाई को ट्रिगर करने के लिए, इस बटन पर टैप करें. उदाहरण के लिए, कोई ईमेल ऐप्लिकेशन "ईमेल संग्रहित किया गया" पर पहले जैसा करें बटन दिखाई देगा. अगर उपयोगकर्ता पहले जैसा करें बटन पर क्लिक करता है, तो ऐप्लिकेशन ईमेल को वापस संग्रह से बाहर ले जाता है.

स्नैकबार और 'पहले जैसा करें' बटन वाली इमेज
पहली इमेज. पहले जैसा करने वाले बटन के साथ एक Snackbar, जो हटाए गए आइटम को वापस लाता है.

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();
अगर Jetpack Compose का इस्तेमाल किया जा रहा है, तो आपको SnackbarHost, जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है:

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