android动态绑定

时间:2010-06-17 07:46:22

标签: android android-widget

我想动态工作,因此我想动态绑定文本视图我认为一个例子可以解释我最好的

假设我想绑定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 :)

1 个答案:

答案 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