Implementing OnClickListener for dynamically created buttons in Android
android, android-layout, android-widget
Solution
See the code below:
for(int i=0;i<nob;i++) {
Button btn = new Button(this);
btn.setId(i+1);
btn.setText("Button"+(i+1));
btn.setLayoutParams(lprams);
final int index = i;
btn.setOnClickListener(new OnClickListener() {
void onClick(View v) {
Log.i("TAG", "The index is" + index);
}
});
dynamicview.addView(btn);
}
My example is pretty simple, but demonstrates how you can get the button index into the `OnClickListeber`. You can access any `final` field in the declared anonymous classes (e..g the `OnClickListener`).
Problem
I dynamically created buttons through code rather than from XML. The code is as below : ``` dynamicview = (LinearLayout)findViewById(R.id.llayout); LinearLayout.LayoutParams lprams = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); for(int i=0;i<nob;i++){ Button btn = new Button(this); btn.setId(i+1); btn.setText("Button"+(i+1)); btn.setLayoutParams(lprams); dynamicview.addView(btn); } ``` I am not finding a way in which I can implement OnClickListener to each of these buttons so that I can perform action based on the reference I get. Can anyone help me in sorting out this issue. ? Thanks in Advance,