मैं जावा से आने वाले कोड के निम्नलिखित टुकड़ों को सी # xamarin में परिवर्तित करने का तरीका खोजने का प्रयास कर रहा हूं:

mediaPlayer.setOnCompletionListener(new OnCompletionListener() {

            public void onCompletion(MediaPlayer mp) {

                Log.i("Completion Listener","Song Complete");
                Toast.makeText(context, "Media Completed", Toast.LENGTH_SHORT).show();
            }
        });

यह एक साधारण EventHandler है जो Android के लिए जावा और .net में भी मौजूद है। दुर्भाग्य से, मुझे अभी तक इसका सही अनुवाद करने का कोई तरीका नहीं मिला है। क्या आप मुझे इस सटीक उदाहरण के साथ दिखा सकते हैं? शुक्रिया:)

1
innomotion media 11 अक्टूबर 2018, 12:46

1 उत्तर

सबसे बढ़िया उत्तर

ऐसा करने का अनुशंसित तरीका घटनाओं का उपयोग करना है, जैसे नीचे दिए गए कोड में।

mediaPlayer.Completion += MediaPlayer_Completion;
...
}
private void MediaPlayer_Completion(object sender, EventArgs e)
{
  Android.Util.Log.Info("Completion Listener", "Song Complete");
  Toast.MakeText(context, "Media Completed", ToastLength.Short).Show();
}

यदि आप अभी भी सी # में जावा खो रहे हैं और घटनाओं से डरते हैं तो आप निम्न कार्य कर सकते हैं:

सी # अज्ञात इंटरफेस का समर्थन नहीं करता है। आपको अलग वर्ग बनाने की जरूरत है जो IOnCompletionListener लागू करता है। उदाहरण के लिए यह गतिविधि क्लास हो सकता है:

public class MyActivity: Activity, IOnCompletionListener
{
       public void OnCompletion(Android.Media.MediaPlayer mp)
        {
            Android.Util.Log.Info("Completion Listener", "Song Complete");
         Toast.MakeText(this, "Media Completed", ToastLength.Short).Show();
        }
...
   {
   ...
    mediaPlayer.SetOnCompletionListener(this);
   ...
   }
}

या कोई अन्य वर्ग जो Java.Lang.Object से विरासत में मिला है और IOnCompletionListener को लागू करता है।

यदि आप गतिविधि में हैं तो 'संदर्भ' को 'इस' से बदलें

2
Access Denied 11 अक्टूबर 2018, 10:06