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

來源:互聯網
上載者:User

標籤:

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

1、使用匿名對象

((ImageButton) findViewById(R.id.music_cover))
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});

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

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

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

先實現此介面:

class MyClickListener implements View.OnClickListener{
@Override
public void onClick(View v) {
}
}

使用:

((ImageButton) findViewById(R.id.music_cover)).setOnClickListener(new MyClickListener());


3、使用 android:onClick屬性

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

在Activity中實現此命名方法

public void onViewClick(View v){
Toast.makeText(this,"onclick", Toast.LENGTH_SHORT).show();
}

以上就是在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]屬性,樣本如下

[Java.Interop.Export]
        public void OnView_Click(View v) {
        }


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

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

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

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

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

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

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.