如何在Android上一次性获取所有按钮ID

Ert*_*tin 9 android android-layout android-xml

我有16 Button秒,我Activity 必须在onCreate()内初始化.有没有办法初始化一行代码中的所有按钮?(循环等)代码应该R.id.XML布局和处理中取出所有按钮....

Bla*_*elt 14

假设您命名了按钮button_0, button_1, .. button_15.你可以做:

for (int i = 0; i < 16; i++) {
    int id = getResources().getIdentifier("button_"+i, "id", getPackageName());
    button[i] = (Button) findViewById(id);
}
Run Code Online (Sandbox Code Playgroud)

  • 标识符应该是描述性的,那么代码就不好理解。 (2认同)

Rud*_*haw 6

好吧,如果这些按钮中的所有16个都在一个视图或布局中,那么您可以执行以下操作.

ArrayList<View> allButtons; 
allButtons = ((LinearLayout) findViewById(R.id.button_container)).getTouchables();
Run Code Online (Sandbox Code Playgroud)

这假设您的容器(在此示例中为a LinearLayout)包含的Touchable不是a Button.