簡體   English   中英

Android Studio事件監聽器之謎(對我而言)(setOnClickEventListener)

[英]Android Studio Event Listener mysteries (to me) (setOnClickEventListener)

我正在嘗試學習android編程,並且在深入理解概念方面停留在某一時刻。

因此,有這段代碼偵聽單擊事件的視圖(一個按鈕)。 順便說一句,代碼是來自站點的,並且工作正常。 但是我痴迷於對細節的理解。

clearButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        // do some stuff
    }
});

我有不同層次的問題:

1.據我所知,父函數(clearButton.setOnClickListener)是事件處理程序,單擊按鈕時將觸發該事件處理程序。 但是,我們正在傳遞給它一個對象的方法,據我所知,它是另一個事件偵聽器。 他們兩個都被命名為“ ClickListener”,所以我很困惑。 他們中有兩個真的是事件偵聽器嗎?

2. View對象(作為回調傳遞的對象)從何而來? 它是由系統隱式創建的嗎? 我的MainActivity.java文件中沒有這樣的定義。

3.我笨拙地嘗試用父函數調用另一個簡單的函數來編寫它,該函數僅顯示一個AlertDialog,但是我失敗了,因為clearButton.setOnClickEventListener期望從回調返回一個View(我認為:)。 還有其他方法可以完成此操作,還是將事件偵聽器設置為視圖的唯一方法? 我是否必須按原樣接受它並接受它,而不是苦苦掙扎:)我僅是為了了解結構的邏輯而要求這樣做,代碼可以正常工作。

4.傳遞給View.OnClickListener函數的視圖是什么? 是當前觀點嗎(我懷疑是這樣)? 傳遞給視圖的視圖的用例是什么?

5.在哪里(或可以在哪里)查看View.OnClickListener函數的代碼以更好地理解它?

6.所有這些練習在我腦海中引發了關於回調的另一個問題,但這可能是另一個問題:)

  1. 有點難以解釋,但是您正在傳遞可以視為function
  2. 視圖包含在Android框架中。
  3. 您還可以通過xml設置onClick偵聽器。 檢查此非常有用的帖子
  4. 從我的理解來看,這是它與之相關的觀點。 例如,它是button1 ,該視圖引用的是button1
  5. View.OnClickListener
  6. ...好的。 我認為最好先閱讀教程(我建議udacity :D)

不是很確定,但是我希望這可以給您一個想法。 學習和編碼愉快! 干杯! :d

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM