回答
以同樣的方式你會在一個單一的按鈕...
上點擊監聽器設置一個,如果你有一個數組會是這個樣子:
btns[0].setOnClickListener(new OnClickListener() {
public void onClick(View v){
//do something
}
});
btns[1].setOnClickListener(new OnClickListener() {
public void onClick(View v){
//do something
}
});
//etc.
如果你想讓他們都做同樣的事情,你可以使用for循環來遍歷數組,如下所示:
for(int i = 0; i< btns.length; i++){
btns[i].setOnClickListener(new OnClickListener() {
public void onClick(View v){
//do something
}
});
}
我不知道你在做什麼,但如果你有一個按鈕數組,很可能你應該使用一個帶有ListView的適配器或其他東西,而不是你現在正在做的每個事情。
沒有看到的解釋一些代碼或更多,這是很難真正回答你的問題,但這裏有一些提示:
之前我們得到的聽衆,我們必須確保每個動態創建的按鈕知道如何響應點擊事件。您可以使用按鈕上的setTag
方法將任意對象附加到該按鈕上。該對象將表示點擊按鈕時的動作。你可以使用整數作爲這個對象(也許是一些常量值),或者如果每個按鈕都需要一些獨特的數據,創建一個類來維護按鈕在點擊時需要採取的行動以及你需要的數據(或者至少是對它的引用)。
然後,您可以初始化處理所有按鈕點擊的單個偵聽器。在這個偵聽器的onClick
方法中放置了一個條件分支來處理所有的點擊事件。在創建它們時,將此偵聽器設置在所有動態按鈕上。在onClick開始時,從onClick
方法的View
參數中獲取標籤(該視圖將是被點擊的按鈕),並使用它來決定要採用的條件的哪個分支。
希望這會有所幫助。如果您提出更具體的問題,我們將能夠提供更詳細的幫助。
我沒有看到需要爲每個按鈕創建一個新的OnClickListener - 所有按鈕都可以共享一個監聽器。
private OnClickListener myListener = new OnClickListener() {
public void onClick(View v) {
Object tag = v.getTag();
// Do something depending on the value of the tag
}
};
...
for (int i=0; i < btns.length; ++i) {
btns[i].setOnClickListener(myListener);
btns[i].setTag(some_identifying_information);
}
當然,你可以創建爲每個按鈕的唯一OnClickListener,並利用這種方式:如果你想控制100
for (int i=0; i < btns.length; ++i) {
final Button btn = btns[i];
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// do something depending on the value of btn, which you're allowed
// to reference here because it was declared final above.
}
});
}
p.s.就我個人而言,我更喜歡第一種模式。 – 2012-08-03 19:01:54
重新使用OnClickListener對象的好處。 – FoamyGuy 2012-08-03 19:55:07
- 1. 按鈕上的NullPointerException setOnClickListener
- 2. setOnClickListener的按鈕
- 3. 按鈕setOnClickListener
- 4. 如何正確設置按鈕的setOnClickListener?
- 5. 按鈕setonclicklistener錯誤
- 6. 按鈕setOnClickListener()與android:onclick
- 7. android如何setOnClickListener片段按鈕
- 8. Android的幫助按鈕setOnclickListener
- 9. C#如何在按鈕陣列按鈕上添加圖像
- 10. 管理單選按鈕陣列中的事件
- 11. 管理陣列
- 12. 按鈕陣列
- 13. 按鈕陣列
- 14. android webview後退按鈕setOnClickListener
- 15. setOnclickListener請按鈕幫助
- 16. 如何:按鈕的.NET MVC2陣列
- 17. 的UINavigationController:如何管理取消按鈕和返回按鈕
- 18. NullPointerException如果我setOnClickListener按鈕從數組
- 19. 單擊按鈕陣列上的事件
- 20. 如何找到在ios按鈕陣列上按下哪個按鈕
- 21. history.js:如何管理後退按鈕
- 22. 如何添加按鈕和JavaScript的WordPress管理編輯列表
- 23. 如何管理兩個按鈕之間的列表視圖
- 24. 單擊按鈕陣列中的按鈕
- 25. 如何管理大型陣列
- 26. 如何管理2維Char陣列?
- 27. 如何在自動創建的多重按鈕上管理OnClickListener
- 28. 如何管理/禁用Android 4.0上的主頁按鈕?
- 29. 按鈕陣列WP7
- 30. 按鈕陣列(Android)
? if(btn [i] == 0)(action1).... if(btn [i] == 100)(action100),not is a answer – delive 2015-09-09 09:29:20