休言女子非英物,夜夜龙泉壁上鸣。这篇文章主要讲述如何在Android上一次性获取所有按钮ID相关的知识,希望能为你提供帮助。
我的Button
中有16个Activity
s,我必须初始化onCreate()中的那些。有没有办法在一行代码中初始化所有按钮?(循环等)代码应该从R.id.
布局和处理所有按钮XML
....
答案假设您将按钮命名为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);
}
另一答案好吧,如果这些按钮中的所有16个都在一个视图或布局中,那么您可以执行以下操作。
ArrayList<
View>
allButtons;
allButtons = ((LinearLayout) findViewById(R.id.button_container)).getTouchables();
这假设你的容器(在这个例子中是
LinearLayout
)不包含不是Touchable
的Button
。另一答案
- 使用Butterknife视图注射库
- 下载Android ButterKnife Zelezny或
android Studio
的Intellij IDEA
插件,并通过1次点击从当前布局初始化所有视图
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);
}
推荐阅读
- Intellij Idea 2018.2.5 CE Android开发问题,android sdk v28是不稳定/渲染问题
- Android - 任何Activity的根视图层次结构中存在的所有视图的相对路径生成器
- 在Android Studio中将Gradle从3.3升级到4.1后出错
- PC和Android设备之间的客户端 - 服务器连接问题
- Android Alpha内部版本无法登录。我在哪里可以查看日志文件()
- 如何在Android Studio中的模拟器上安装apk()
- windows7 64位官方旗舰版系统推荐
- 系统之家win7纯净版64位ghost系统免费下载
- 系统之家纯净版win7 32位最新系统免费下载