use getResources().getIdentifier as
String abc = "but"+String.valueof(i); int resID = getResources().getIdentifier(abc, "id", getPackageName()); arrayButton[i] = (Button) findViewById(resID ); arrayButton[i].setText("Hello:");
i.e. just rewrite the init() method as
private void init() { for(int i=1 ; i<9 ; i++) { String abc = "but"+String.valueof(i); int resID = getResources().getIdentifier(abc, "id", getPackageName()); arrayButton[i] = (Button) findViewById(resID); arrayButton[i].setText("Hello:"); } }
Or just you can use
int[] buttonIDs = new int[] {R.id.but1, R.id.but2, R.id.but3,R.id.but4, ... } for(int i=0; i<buttonIDs.length; i++) { Button b = (Button) findViewById(buttonIDs[i]); b.setText("Hello:" + b.getText().toString()); }
source share