Android开发——通过使用getResource.getIdentifier() 获取layout中组件id

近期想优化一下之前的Android程序,主要是在获取layout中组件的时候,如果总是通过下面代码来获取id并调用的话实在是太麻烦了,代码量太大,而且太不美观了!

EditText ed1 = (EditText) AAcharge.this.popView.findViewById(R.id.pay1);

所以就想有没有什么方法通过循环来获取id,然后再去调用呢?通过各种搜索,比较杂吧,现在就做个笔记,防止以后忘记了!

主要是通过getResources().getIdentifier()来获取,如下:

id1 = getResources().getIdentifier("pay1", "id", getPackageName());
这样,我们通过传递字符串pay1就可以得到对应的id值,然后:

EditText ed1 = (EditText) AAcharge.this.popView.findViewById(id1);
请不要在意前面的AAcharge.this.popView,实际中只要是用到findViewById都可以通过上面的方法先获取id1再去获取组件。

那么,这样做的好处是什么呢?就像我前面说的,我是想通过循环来获取id,然后这样就以批次的获得组件,增加了程序的灵活性。这样我们可以通过下面的循环来获取资源或layout的id等信息了!

for (int k =0;k<num.length;k++){
				id[k] = getResources().getIdentifier("pay"+k, "id", getPackageName());
				ed[k] = (EditText) AAcharge.this.popView.findViewById(id[0]);
			}

是不是很方便啊~~



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值