天天看點

Xamarin.Android中使用android:onClick="xxx"屬性

在原生Android開發中,為一個View增加點選事件,有三種方式;

1、使用匿名對象

我們知道,View.OnClickListener是一個接口,接口是不能直接執行個體化的,是以上述是使用匿名對象的原理來實作的;

2、使用實作了View.OnClickListener的對象

這種方式通常是執行個體化一個實作了此接口的對象傳遞到view.setOnClickListener方法中,

先實作此接口:

使用時

3、使用 android:onClick屬性

在view中設定屬性android:onClick="onViewClick",引号中即指定了點選時調用的函數名稱

在Activity中實作此命名方法

以上就是在java中增加view的點選事件的方法,但是具體的使用了解這些還不夠,有幾點需要注意的,最後總結;

标題是講Xamarin.Android中如何使用android:onClick屬性,是以這才是關鍵;也順帶提下如何在Xamarin中綁定view的點選事件

Xamarin.Android中也有三種方式實作,但是與原生有一定差別;

1、使用View的Click事件

view.Click += xxxx

因為在c#中沒有匿名對象這個東西,但是相對提供了c#的事件訂閱這種方式,但是這種使用方式,有很大的講究,c#的事件訂閱使用不好,可能會造成多次訂閱,甚至在極端情況下造成記憶體洩露,這一塊有很多内容要講,後續會繼續推出講解;

2、此方法類似java的第二種方法

3、與Java的第三種方法一緻,但是在Xamarin中使用,必須引入Mono.Android.Export這個動态庫

并且在相應方法上标注 [Java.Interop.Export]屬性,示例如下

最後再說下使用第三種方法需要注意的兩點:

1、方法必須是對外可見的,什麼意思呢,就是這個方法外層是可以直接通路的,原因很簡單,xml也是用于解析的,這個屬性不是

那麼神聖,也是通過解析處理,然後綁定這個方法,是以這個方法必須對外可見,簡單點一句話:public修飾,萬事大吉

2、使用這個屬性的view必須是可點選的,比如Button,ImageButton等這些本身就是可點選的,那TextView可以使用不呢?肯定可以,但是一定要

設定另外一個屬性,android:clickable="true".

大體到這就結束了,對于這三種方式的優缺點及使用場景,有時間給大家說下我自己的看法。新手帖,高手勿噴!

繼續閱讀