代码之家  ›  专栏  ›  技术社区  ›  yoav.str

android动态绑定

  •  1
  • yoav.str  · 技术社区  · 14 年前

    我想动态地工作,所以我想动态地绑定文本视图,我想用一个例子可以最好地解释我

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

    但是让我们用numofileds修改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不是在它们之间的cont间隙中生成的,因此我不知道如何使这种架构成为可能。 如果有办法的话,有人能给我举个例子说明如何动态地工作(比如在android上使用jsp或者其他什么方法?)

    id这样做的可能性常量次数是否可以像jsp那样构建相同的xml常量次数

    1 回复  |  直到 14 年前
        1
  •  0
  •   Joubarc    14 年前

    比如:

    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