首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

应用自己的r文件进行反射以及遍历linearout包含的控件

2012-09-16 
使用自己的r文件进行反射以及遍历linearout包含的控件我的布局里面有很多个textView 我总不能一个个重新设

使用自己的r文件进行反射以及遍历linearout包含的控件

我的布局里面有很多个textView 我总不能一个个重新设置 但是他们有 很多共性

?

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;?
? ? }?
}?
上面的是我的r文件

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);?
}?

当然如果你的布局如果只有textView组成 而没有其他的控件那就无需使用这个了

可以使用

public void onCreate(Bundle savedInstanceState) {?
? ? ? ? ? ? super.onCreate(savedInstanceState);?
?
? ? ? ? ? ? setContentView(R.layout.main);?
? ? ? ? ? ? LinearLayout ll = (LinearLayout) findViewById(R.id.LinearLayout01);?
? ? ? ? ? ? for (int i = 0; i < ll.getChildCount(); i++) {?
? ? ? ? ? ? ? ? ((TextView) ll.getChildAt(i)).setText("Text View " + i);?
? ? ? ? ? ? }?

热点排行