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

问题描述 投票:8回答:4

我的Button中有16个Activitys,我必须初始化onCreate()中的那些。有没有办法在一行代码中初始化所有按钮?(循环等)代码应该从R.id.布局和处理所有按钮XML ....

android android-layout android-xml
4个回答
12
投票

假设您将按钮命名为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);
}

5
投票

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

ArrayList<View> allButtons; 
allButtons = ((LinearLayout) findViewById(R.id.button_container)).getTouchables();

这假设你的容器(在这个例子中是LinearLayout)不包含不是TouchableButton


2
投票
  1. 使用Butterknife视图注射库
  2. 下载Android ButterKnife ZeleznyAndroid StudioIntellij IDEA插件,并通过1次点击从当前布局初始化所有视图

0
投票

对于android xamarin:

List<Button>() allButtons = new List<Button>();
for (int i = 1; i < 15; i++)
{
    int id = this.Resources.GetIdentifier("btn" + i.ToString(), "id", this.PackageName);
    Button btn = (Button)FindViewById(id);
    allButtons.Add(btn);

}
© www.soinside.com 2019 - 2024. All rights reserved.