簡體   English   中英

Android:可以直接從setOnClickListener()調用方法嗎?

[英]Android: Is it possible to call a method directly from setOnClickListener()?

我正在動態創建一些按鈕,理想情況下,如果按下按鈕,希望能夠運行一個方法。

甚至可能出現以下情況嗎?

private void someMethod(int ID){
 //on button pressed do something with the ID
}

private void otherMethod(){

  for( Program element : someList)
  {
    addButton.setOnClickListener(someMethod(element.getID));
  }
}

顯然,多數民眾贊成只是模擬一些代碼來說明我的問題。 我知道您可以實例化一個新類,這樣看來您應該可以調用一個方法,盡管到目前為止,我一直在嘗試中出錯。

我在網上瀏覽了一下,但是找不到任何答案,所以我想在這里問。

setOnClickListener定義單擊按鈕時將發生的情況。 為同一按鈕多次設置它是沒有意義的。 您設置的最后一個將是活動的。

偵聽器調用方法,請聲明一個匿名類重寫:

addButton.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
           someMethod(...);
        }
});

如果您試圖設置具有相似功能的多個按鈕,則需要遍歷按鈕 (例如在列表中),並設置每個OnClickListener 要獲得每個按鈕不同的變量,可以使用View標簽

for (Button b : buttons) {
    b.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
             someMethod(v.getTag());
        }
    });
}

現在,您可以簡單地將XML中的Buttontag屬性(或手動 )設置為所需的任何屬性,它將被傳遞給偵聽器(並由此傳遞給方法)。

暫無
暫無

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

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