我如何遍历R.java类的id属性? [英] How do I iterate through the id properties of R.java class?

查看:509
本文介绍了我如何遍历R.java类的id属性?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经16 textViews和需要设置像这样完成的:

 的for(int i = 1; I< 6,我++)
{
    INT $ RidInt = R.id.s;
    电视[I] =(TextView中)findViewById($ RidInt);
    电视[I] .setTypeface(面);
    电视[I] .setClickable(真正的);
    电视[I] .setOnClickListener(clickListener);
}
 

我的R.java文件是:

 公共final类环R {
    公共静态final类ATTR {
    }
    公共静态final类绘制{
        公共静态最终诠释图标= 0x7f020000;
    }
    公共静态最后的类ID {
        公共静态最终诠释S1 = 0x7f050000;
        公共静态最终诠释S10 = 0x7f050009;
        公共静态最终诠释S11 = 0x7f05000a;
        公共静态最终诠释S12 = 0x7f05000b;
        公共静态最终诠释S13 = 0x7f05000c;
        公共静态最终诠释S14 = 0x7f05000d;
        公共静态最终诠释S15 = 0x7f05000e;
        公共静态最终诠释S16 = 0x7f05000f;
        公共静态最终诠释S2 = 0x7f050001;
        公共静态最终诠释S3 = 0x7f050002;
        公共静态最终诠释S4 = 0x7f050003;
        公共静态最终诠释S5 = 0x7f050004;
        公共静态最终诠释S6 = 0x7f050005;
        公共静态最终诠释S7 = 0x7f050006;
        公共静态最终诠释S8 = 0x7f050007;
        公共静态最终诠释S9 = 0x7f050008;
    }
    公共静态最后的客舱布局{
        公共静态最终诠释主要= 0x7f030000;
        公共静态最终诠释敬酒= 0x7f030001;
    }
    公共静态final类的字符串{
        公共静态最终诠释APP_NAME = 0x7f040000;
        公共静态最终诠释S2 = 0x7f040001;
    }
}
 

解决方案

类似的东西?

 进口java.lang.reflect.Field中;
/ * ... * /

的for(int i = 1; I< 16;我++){
    INT的id = R.id.class.getField(S+ I).getInt(0);
    电视[I] =(TextView中)findViewById(ID);
    电视[I] .setTypeface(面);
    电视[I] .setClickable(真正的);
    电视[I] .setOnClickListener(clickListener);
}
 

I've 16 textViews and need to set something like this done:

for (int i=1; i<6; i++)
{
    int $RidInt = R.id.s; 
    tv[i] = (TextView)findViewById($RidInt);
    tv[i].setTypeface(face);
    tv[i].setClickable(true);
    tv[i].setOnClickListener(clickListener);
}

my R.java file is :

public final class R {
    public static final class attr {
    }
    public static final class drawable {
        public static final int icon=0x7f020000;
    }
    public static final class id {
        public static final int s1=0x7f050000;
        public static final int s10=0x7f050009;
        public static final int s11=0x7f05000a;
        public static final int s12=0x7f05000b;
        public static final int s13=0x7f05000c;
        public static final int s14=0x7f05000d;
        public static final int s15=0x7f05000e;
        public static final int s16=0x7f05000f;
        public static final int s2=0x7f050001;
        public static final int s3=0x7f050002;
        public static final int s4=0x7f050003;
        public static final int s5=0x7f050004;
        public static final int s6=0x7f050005;
        public static final int s7=0x7f050006;
        public static final int s8=0x7f050007;
        public static final int s9=0x7f050008;
    }
    public static final class layout {
        public static final int main=0x7f030000;
        public static final int toast=0x7f030001;
    }
    public static final class string {
        public static final int app_name=0x7f040000;
        public static final int s2=0x7f040001;
    }
}

解决方案

Something like that?

import java.lang.reflect.Field;
/* ... */

for (int i = 1; i < 16; i++) {
    int id = R.id.class.getField("s" + i).getInt(0);
    tv[i] = (TextView)findViewById(id);
    tv[i].setTypeface(face);
    tv[i].setClickable(true);
    tv[i].setOnClickListener(clickListener);
}

这篇关于我如何遍历R.java类的id属性?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆