Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Java Android kitaplıklarının, kitaplıkların özelliklerine veya yöntemlerine geçirilen durumları temsil etmek için tamsayı sabitleri kullandığı durumlar vardır. Yaygın olarak dağıtılmış bağlamalar için, tüketiciler için daha iyi bir API sağlamak üzere bu tamsayı sabitlerini C# içindeki sabitlere bağlamak yararlı olabilir.
İç veya düşük kullanım bağlamaları için genellikle bunları ayarlamak için çaba harcamaya değmez, çünkü tüketiciler sabit listesi yerine yalnızca bağlı sabitleri kullanabilir.
Bu eşlemeyi kolaylaştırmak için, varsayılan proje şablonu tarafından bağlama projelerine iki dosya eklenir:
EnumFields.xml - Bu dosya Java tamsayı sabitleri ile C# sabit listesi arasındaki eşlemeyi tanımlar
EnumMethods.xml - Bu dosya, şu anda bir
intyöntem parametresini alan veya dönüş türüne sahipintolan yöntemlerin/özelliklerin yerine numaralandırma kullanmak üzere değiştirilmesi gerektiğini tanımlar.
EnumFields.xml kullanarak sayımsal tanımlama
EnumFields.xml dosyası Java int sabitleri ile C# enumsarasındaki eşlemeyi içerir. Şimdi bir dizi int sabit için oluşturulan bir C# enum örneğini ele alalım:
<mapping jni-class="com/skobbler/ngx/map/realreach/SKRealReachSettings" clr-enum-type="Skobbler.Ngx.Map.RealReach.SKMeasurementUnit">
<field jni-name="UNIT_SECOND" clr-name="Second" value="0" />
<field jni-name="UNIT_METER" clr-name="Meter" value="1" />
<field jni-name="UNIT_MILIWATT_HOURS" clr-name="MilliwattHour" value="2" />
</mapping>
Burada Java sınıfını SKRealReachSettings aldık ve ad alanında SKMeasurementUnitadlı Skobbler.Ngx.Map.RealReach bir C# sabit listesi tanımladık. Girdiler field , Java sabitinin adını (örnek UNIT_SECOND), numaralandırma girdisinin adını (örnek Second) ve her iki varlık tarafından temsil edilen tamsayı değerini (örnek 0) tanımlar.
EnumMethods.xml kullanarak getter/setter yöntemlerini tanımlama
EnumMethods.xml dosyası, yöntem parametrelerinin değiştirilmesine ve Java int sabitlerinden dönüş türlerinin C# enumsolarak değiştirilmesine olanak tanır. Başka bir deyişle, C# sabit listelerinin ( EnumFields.xml dosyasında tanımlanan) okunmasını ve yazmasını Java int sabiti get ve set yöntemleriyle eşler.
SKRealReachSettings Yukarıda tanımlanan sabit listesi göz önüne alındığında, aşağıdaki EnumMethods.xml dosyası bu sabit listesi için getter/setter öğesini tanımlar:
<mapping jni-class="com/skobbler/ngx/map/realreach/SKRealReachSettings">
<method jni-name="getMeasurementUnit" parameter="return" clr-enum-type="Skobbler.Ngx.Map.RealReach.SKMeasurementUnit" />
<method jni-name="setMeasurementUnit" parameter="measurementUnit" clr-enum-type="Skobbler.Ngx.Map.RealReach.SKMeasurementUnit" />
</mapping>
İlk method satır, Java getMeasurementUnit yönteminin dönüş değerini SKMeasurementUnit numaralandırmayla eşleştirir. İkinci method satır, setMeasurementUnit'in ilk parametresini aynı enum ile eşler.
Tüm bu değişiklikler gerçekleştirildikten sonra Android için .NET'te MeasurementUnit öğesini ayarlamak için aşağıdaki kodu kullanabilirsiniz:
realReachSettings.MeasurementUnit = SKMeasurementUnit.Second;