我想动态工作,因此我想动态绑定文本视图我认为一个例子可以解释我最好的
假设我想绑定7个图像视图,我可以这样做:
Country = (EditText)findViewById(R.id.CountryEditText);
City = (EditText)findViewById(R.id.CityEditText);
LivinigCreture = (EditText)findViewById(R.id.LivingCretureE);
Nature =(EditText)findViewById(R.id.NatureEditText);
Inanimate = (EditText)findViewById(R.id.InanimateEditText);
KnowenPersonality = (EditText)findViewById(R.id.KnowenPersonalityEditText);
Occupation = (EditText)findViewById(R.id.OccupationEditText);
但是让我们用NUMOFFILEDS作为最终我想要做的事情来改变7?
myImages = new ImageView [7];
for (int i = 0; i<7;i++,????)
myImages[i] = (ImageView)findViewById(R.id.initialImageView01);
注意:在我的R文件中,R.id.initialImageView01 - R.id.initialImageView07不会在它们之间的间隙中生成,因此我不知道如何使这种架构成为可能。 如果有办法,有人可以告诉我一个例子如何工作dynmiclly(比如在Android组合方式上使用jsp?)
id它可以这么做,可以像jsp一样构建一个相同的xml常量次数 谢谢你pep :)
答案 0 :(得分:0)
您可以将ID本身存储在活动开头的数组中;这样你只需要编写一次,然后就可以将它们编入索引了。
类似的东西:
int[] initialImageViewIds = {
R.id.CountryEditText,
R.id.CityEditText,
R.id.LivingCretureE,
R.id.NatureEditText,
R.id.InanimateEditText,
R.id.KnowenPersonalityEditText,
R.id.OccupationEditText
};
然后您可以使用以下方式访问它们:
myImages = new ImageView [7];
for (int i = 0; i<7;i++) {
myImages[i] = (ImageView)findViewById(initialImageViewIds[i]);
}
如果这还不够并且你真的想要动态获取ID,我想你可以在R.id类上使用反射,可能使用像R.id.getClass().getFields()
这样的东西并迭代字段来检查它们的名字是否有兴趣您。也请检查reference for the Class class。