Setting Button ID programmatically

前端 未结 6 1353
慢半拍i
慢半拍i 2021-01-01 04:10

Android 2.3.3

I have a table with N rows and N columns. For each row, I should add 4 buttons dynamically, and later do actions based on the button clicked. I know we

相关标签:
6条回答
  • 2021-01-01 04:41

    No you cannot set it to String, the id is int value, even when you set it from XML it is just the resource name of an int value

    0 讨论(0)
  • 2021-01-01 04:46

    If you have the references to the views anyway , you can simply save them all into a HashMap, for example using HashMap .

    Another alternative , so that you will avoid any typos , is to have an enum as the key of the hashMap , for example : HashMap .

    0 讨论(0)
  • 2021-01-01 04:47

    The strings you use in your XML files correspond to an int in R.java, and are hence actually ints. The setId() method will only accept an int value as an argument. You could define your IDs in a constants file, something like:

    public class Ids {
        public static final int ID_ONE = 1;
    }
    

    and then use it as:

    button.setId(Ids.ID_ONE);
    
    0 讨论(0)
  • 2021-01-01 04:47

    No you cannot set it to String, the id is int value, even when you set it from XML it is just the resource name of an int value

    0 讨论(0)
  • 2021-01-01 04:49

    You can use tags for that purpose . For example

    btn.setTag("btXYZ");
    
    0 讨论(0)
  • 2021-01-01 04:50
    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;
            }
        }
    };
    
    0 讨论(0)
提交回复
热议问题