2013-05-27 17 views
1

我已經創建了一個帶按鈕的ArrayList,並且我在其中設置了OnClickListener。如何查看在ArrayList中點擊哪個按鈕

for (int i = 0; i < 27; i++) { 
     myButtons.add(new Button(this)); 
     myButtons.get(i).setOnClickListener(this); 
     myButtons.get(i).setLayoutParams(params); 
} 

但是我怎樣才能看到,現在,在onClick方法,哪個按鈕被點擊?

public void onClick(View v) { 
    // TODO Auto-generated method stub 

} 

也許我應該說我在編程方面真的很新穎。

+0

否擴展活動是否需要擴展Button? – L3n95

+0

你可以添加id到像myButtons.setID(i)這樣的按鈕;並在onclick v.getid – NaserShaikh

回答

1

您可以爲所添加的所有按鈕設置一個標籤,在onClick中,您可以使用v.getTag()來檢查點擊了哪個按鈕。

1

您可以在您的按鈕添加到列表中,使用方法setTag()/getTag()

myButtons.get(i).setTag(id); 

listener = new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     doAction(v.getTag()); 
    } 
}; 
1

存儲的任何其他信息,設置這樣的標籤:

Button button = new Button(this); 
button.setOnClickListener(this); 
button.setLayoutParams(params); 
button.setTag(i); 

然後索引可以被檢索:

int index = (Integer) button.getTag(); 
0

爲每個按鈕ID設置,例如:

... 
Button button= new Button(this); 
temp.sedId(i); 
temp.setOnClickListener(this); 
myButtons.add(button); 
... 

然後在onClick上點擊按鈕反應例如:

public void onClick(View v) { 
    switch(v.getId()) { 
    ... 
    case 17: 
     //Some action 
     break; 
    } 
} 
0

在activity.Use button.setId(id)實現接口OnClickListener設置ID爲每個button.Try下面的代碼

@Override 
public void onClick(View v) { 

    switch (v.getId()) { 
     case R.id.button1: 

      break; 

     case R.id.button2: 


      break; 

     case R.id.button3: 

      break; 


     default: 
      break; 
    } 

}