खोज…


प्रकार निकालना

Xamarin.Android Bindings जनरेटर को निर्देश देना संभव है कि वह एक जावा प्रकार को अनदेखा करे और उसे बांधें नहीं। यह मेटाडेटा.xml फ़ाइल में एक remove-node XML तत्व जोड़कर किया जाता है:

<remove-node path="/api/package[@name='{package_name}']/class[@name='{name}']" />

जावा इंटरफेस को लागू करना

यदि किसी java लाइब्रेरी में ऐसे इंटरफ़ेस होते हैं, जिन्हें उपयोगकर्ता द्वारा लागू किया जाना चाहिए (जैसे View.IOnClickListener या callbacks जैसे क्लिक श्रोता), तो क्रियान्वयन वर्ग को Java.Lang.Object या Java.Lang.Throwable से - प्रत्यक्ष या अप्रत्यक्ष रूप से Java.Lang.Object Java.Lang.Throwable । यह एक सामान्य त्रुटि है, क्योंकि पैकेजिंग कदम केवल एक चेतावनी को प्रिंट करते हैं जिसे आसानी से अनदेखा किया जाता है:

टाइप करें 'MyListener' Android.untime.IJavaObject को लागू करता है लेकिन Java.Lang.Object से इनहेरिट नहीं करता है। यह समर्थित नहीं है।

गलत

इस कार्यान्वयन के उपयोग से अप्रत्याशित व्यवहार होगा।

class MyListener : View.IOnClickListener
{
    public IntPtr Handle { get; }

    public void Dispose()
    {            
    }

    
    public void OnClick(View v)
    {
        // ...
    }
}

सही बात

class MyListener : 
    Java.Lang.Object, // this is the important part
    View.IOnClickListener
{       
    public void OnClick(View v)
    {
        // ...
    }
}

बाइंडिंग लाइब्रेरी के तरीकों और इंटरफेस का नाम बदल सकते हैं

बाइंडिंग लाइब्रेरी में सब कुछ C # में वैसा ही नहीं होगा जैसा कि जावा में होता है।

C # में, इंटरफ़ेस के नाम "I" से शुरू होते हैं, लेकिन जावा में ऐसा कोई सम्मेलन नहीं है। जब आप जावा लाइब्रेरी आयात करते हैं, तो SomeInterface नाम का एक इंटरफ़ेस SomeInterface बन ISomeInterface

इसी तरह, जावा में C # does जैसे गुण नहीं हैं। जब कोई लाइब्रेरी बंधी होती है, तो जावा गेट्टर और सेटर के तरीकों को गुणों के रूप में फिर से बनाया जा सकता है। उदाहरण के लिए, निम्नलिखित जावा कोड

public int getX() { return someInt; }

public int setX(int someInt) { this.someInt = someInt; }

के रूप में refactored जा सकता है

public int X { get; set; }

जब यह बाध्य है।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow