2011-09-06 49 views
0
for (int i = 0; i < responses.size(); i++) 
    { 
     Button btn = new Button(this); 
     btn.setText(guideStep.getResponse(i).getTitle()); 
     btn.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) 
      { 
       try 
       { 
        //NextStep(guideStep.getStep(), guideStep.getSession(), guideStep.getResponse(i).getId()); 
       } 
       catch(Exception e) 
       { 
        e.printStackTrace(); 
       } 
      } 
     }); 
     linearLayout.addView(btn); 
    } 

看一下下面的代碼。我正在爲我的線性佈局動態添加按鈕。我需要動態修改每個按鈕的onClick事件。爲此,我需要循環中的計數器和一些方法來保存我的guideStep對象,從沒有循環也。需要保存的變量爲我的onClick

有沒有辦法做到這一點?

+0

我需要用我的onClick調用方法,但我需要有關按鈕的信息,我點擊它隨同發送。我只能從在onClick範圍外實例化的對象獲取信息。 –

回答

0
for (int i = 0; i < responses.size(); i++) 
{ 
    final int id = i; // save your variable 

    ... 
    try 
    { 
     NextStep(guideStep.getStep(), guideStep.getSession(), 
      guideStep.getResponse(id).getId()); // use it 
    } 
    .... 
} 
0
for (int i = 0; i < responses.size(); i++) 
{ 
    final int fin_i = i; 
    ... 
    btn.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) 
     { 
      // Use fin_i 
     }); 
    ... 
} 
0

您可以使用您的按鈕setTag(your_id)方法,然後讓後面的ID在你OnClickgetTag()方法。

相關問題