关于Android studio通过循环遍历实现View对象的findviewbyid()和监听器的循环设置

那种图片按钮点完以后消失还让你计数的时候,大多数他们的各种属性和点击事件一样,而且你要是一个一个弄得弄好久,瞬间想到了循环。比如

这种摘竹子的,直接循环解决。

想到了循环解决,先看有几个竹子。一看,有6个,好。把这6个竹子的id弄成@+id/im_btn_1、@+id/im_btn_2、@+id/im_btn_3..........这种有规律的,因为循环最简单的那种也就是从一个数开始,然后一直++。所以弄成这样以便循环调用。

好了,想要findviewbyid,你得首先想咋表示id

我有妙招

先弄一个

Resources res =getResources();

这个res有大用,它可以调用函数getIdentifier(),返回int值,大家都知道id类型也是int,所以在循环里别客气,直接int一个变量id进行赋值就好啦

id解决了,那find的控件装哪呢,

有同学就说了,我先把那控件先一个一个声明,再在循环里面一个一个赋值

哎呦你干嘛,这不是又回到起点了?

直接集合类集合一手

弄一个list装里面就行

且看

 List<ImageButton> imts=new ArrayList<ImageButton>();

这不就有容器了?

循环中一个一个添加进去就行。

好 看第一个循环

  List<ImageButton> imts=new ArrayList<ImageButton>();
        Resources res =getResources();
        for(int i=1;i<=6;i++){
            int id=res.getIdentifier("im_btn_"+i,"id",getPackageName());
            ImageButton zhuzi=findViewById(id);
            imts.add(zhuzi);
        }

这就把那6个竹子装进去了

再然后就要干嘛

监听一手是不是?

监听肯定也是循环啊,因为点击事件都是一样的,都是让他消失再计数加一的

直接foreach就好

       for (ImageButton imageButton:imts){
            imageButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    bamboo++;
                    imageButton.setBackground(null);
                }
            });

你要是就不这样弄 就不

那还有办法

从list里面调用元素不是get()一手就好了

你把get(里面弄个i)从0开始循环到5一样的。

所以说遍历最好直接foreach简单粗暴哈哈

好了就这拜拜。

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

轨迹_6

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值