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,
   for(int i=0;i<nob;i++){
         Button btn = new Button(this);
         btn.setId(i+1);
         btn.setText("Button"+(i+1));
         btn.setOnClickListener(btnclick); <<<<<<<set click
         btn.setLayoutParams(lprams);
         dynamicview.addView(btn);
     }
And add this listner outside the any method and inside class
 OnClickListener btnclick = new OnClickListener() {
        @Override
        public void onClick(View view) {
            switch(view.getId()){
              case 1:
               //first button click
              break;
               //Second button click
              case 2:
              break;
              case 3:
               //third button click
              break;
              case 4:
               //fourth button click
              break;
            .
            .
            .
             default:
              break;
              }
        }
    };
                        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).
Use a List and add Buttons you create to that List
List<Button> list = new ArrayList<Button>();
Now add your button to that List
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);
         list.add(btn);
     }
Then use advanced for loop to iterate through the list and add click listener for each Button..
for(Button btn : list){
btn.setOnClickListener(this);
}
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With