如何在Android上一次性获取所有按钮ID
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在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次点击从当前布局初始化所有视图
另一答案
对于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);
}
以上是关于如何在Android上一次性获取所有按钮ID的主要内容,如果未能解决你的问题,请参考以下文章
如何从 android 包中的资源 id 获取 Drawable 对象?