Android数组+循环批量管理控件
Android管理多按钮,资源文件实现
0X00 问题来源
最近做了一个Android计算器交Android通识课作业, 感觉按钮控件很多,一个一个写监听太蠢了
0X01 解决方案
看了很多资料,总结加原创
1.建立id数组
string.xml文件建立数组,把所有需要统一管理的控件id写到这里面,比如我是计算器代码如下:
1
2
3
4
5
6
7
8 ... ...
<string-array name="actions_button">
<item>@+id/bT0</item>
<item>@+id/bT1</item>
....
<item>@+id/bT15</item>
</string-array>
... ...
我还实现了计算器语音播报功能其中每一个按钮对应的语音文件也可以这样管理具体元素代码
<item>@raw/num7</item>
2.获取按钮id
先建立一个Button的数组
1 Button[] btsz = new Button[16];//创建15个按钮的数组
在onCreate方法里面
1
2
3
4
5
6
7
8
9
10 ... ...
TypedArray btidar = getResources().obtainTypedArray(R.array.actions_button);//通过调用string.xml文件中的数组批量管理按钮id
int len = btidar.length();//一共16个按钮
int[] btid = new int[len];
final int[] yinid = new int[len];
for (int i = 0; i < len; i++){
btid[i] = btidar.getResourceId(i,0);//获得按钮的id放到btid数组里面,这里可以写成两行
btsz[i] = (Button)findViewById(btid[i]);//绑定id到按钮
}
... ...
3.批量监听实现
1 | ... ... |
0X02总结
这个解决方法不止一种,还可以重写onClick方法,利用view变量获取当前按钮id,然后一个swich就解决了