2013-07-27 118 views
2

我必須獲取數組並使用它來動態創建onClickListener()。我用這種方法來創建動態按鈕。任何人都有任何想法如何使用數組來動態創建onClickListener()?從StringArray創建按鈕並設置onClickListener

for (int i = 0; i < categoryName.size(); i++) { 

    Button btn = new Button(this); 
    btn.setId(Integer.parseInt(categoryID.get(i).toString())); 
    btn.setHint(categoryID.get(i).toString()); 
    btn.setText(categoryName.get(i)); //another array with the name of the IDS 
    btn.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      //example 
      Toast.makeText(getApplicationContext(),categoryID.get(i),Toast.LENGTH_LONG).show(); 
     } 
    }); 
    buttonLayout.addView(btn, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
} 
+0

你想創建一組按鈕嗎?你還想爲數組中的每個按鈕定義單獨的'onClickListener'嗎?那是你在找什麼? –

回答

1

將只btn.setOnClicklistener(this);代替

btn.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     //example 
     Toast.makeText(getApplicationContext(),categoryID.get(i),Toast.LENGTH_LONG).show(); 
    } 
}); 

的onClick():

@Override 
public void onClick(View v) { 
    //example 
    //you can check its view 
    //here V gives you BtnId 
} 
0

只要讓您categoryNamecategoryID陣列是final

相關問題