[英]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中的Button
的tag
屬性(或手動 )設置為所需的任何屬性,它將被傳遞給偵聽器(並由此傳遞給方法)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.