2013-03-13 55 views
0

我正在創建一個應用程序,該應用程序根據數據庫中的條目數動態地創建複選框。動態添加onClick ActionListener到Android中的CheckBox

代碼運行良好。並創建多個複選框。但我想動態地將OnClick Action Listener添加到CheckBoxes。這個怎麼做。

我在這裏張貼代碼:

SQLiteDatabase db = this.getReadableDatabase(); 

String countQuery = "SELECT * FROM " + TABLE_NAME; 
SQLiteDatabase db = this.getReadableDatabase(); 
Cursor cursor = db.rawQuery(countQuery, null); 

int maxCount = cursor.getCount(); 
CheckBox[] check = new CheckBox[maxCount]; 

cursor.moveToFirst(); 
int checkboxid = 100; 
int alarm_id; 
for(int i=0;i<maxCount;i++) 
{ 
    check[i]= new CheckBox(this); 
setCheckBoxId(i+maxCount); 
} 

現在如何添加的ActionListener這些動態創建的複選框。

+0

亞..我沒有,但這個類沒有擴展Activity類等等。 onClickListener是View類的方法。那麼該怎麼做。? – 2013-03-13 10:44:19

回答

1

下面check[i]= new CheckBox(this);添加這個,和你的CheckBox將有一個所有clicklistener

check[i].setOnClickListener(new View.OnClickListener() { 
        public void onClick(View v) { 
         // your code to be executed on click :) 
        } 
       }); 
2
check[i]= new CheckBox(this); 
check[i].setOnClickListener(this); 

您將要創建時,它要檢查的複選框ID或設置標籤的文本博茲。

check[i].setTag(someIdentifier); 

然後使用方法

@Override 
public void onClick(View v) { 
       if (v.getTag.equals(someIdentifier)){ 
        //do stuff here 
        } 

     } 
+0

以下方法同樣有效。 – 2013-03-13 10:31:17

+0

我更喜歡你的方法,因爲它只使用一個Listener,而道奇的方法爲每個複選框創建一個新的Listener對象。 – Ridcully 2013-03-13 10:36:00

+0

謝謝,是的,它有點更好,但意味着你必須保持標識符並自己切換/選擇它們。如果觸摸效率低下(特別是在動態內容中,在編碼時不知道最終的聽衆/盒子的數量),則Dodges方法在概念上更簡單一些。 :D – 2013-03-13 10:38:05

相關問題