【问题标题】:How to add to an array elements with different ids如何添加到具有不同 id 的数组元素
【发布时间】:2016-06-20 11:05:32
【问题描述】:

对不起,如果标题不够清楚,但我想做的是:

在 xml 中,我有很多 EditText 字段,它们的 id 不同但几乎相同(例如 A1、A2、A3 等)。我想要做的是将这些 id 中的值添加到一个带有循环的数组中。

EditText[] rEdit = new EditText[25];

for (int i = 0; i < 25; i++) {
    rEdit[i] = (EditText) findViewById(R.id.A1);
}

我该怎么做,所以它也会遍历 id?

【问题讨论】:

  • 作为建议,我建议删除 android-studio 标记。这是您的代码而不是 IDE 的问题,因此无论您使用什么 IDE,您都会遇到此问题。
  • 据我所知,大不,你不能在循环中这样做
  • 我遇到了类似的问题,这对我有帮助:stackoverflow.com/a/8008659/6470431

标签: java android


【解决方案1】:

假设您的 Views 有他们的 ID,例如 yourViewName0yourViewName1yourViewName2 等。

你可以这样做:

EditText[] rEdit = new EditText[25];

for (int i = 0; i < 25; i++) {
    EditText editText = (EditText) findViewById(getResources()
        .getIdentifier("yourViewName" + i, "id", getPackageName()));
    rEdit[i] = editText;
}

【讨论】:

    【解决方案2】:

    res/values/arrays.中创建一个id数组

    通过getResources().getIntArray()加载它

    像往常一样迭代它

    【讨论】:

      【解决方案3】:

      尝试这样做:

      EditText[] rEdit = new EditText[25];
      
      for (int i = 0; i < 25; i++) {
          int resId = getResources().getIdentifier("A"+i, "id", getPackageName());
          rEdit[i] = (EditText) findViewById(resId);
      }
      

      resId会得到A1、A2、A3...A24 ids,你可以很容易地得到你想要的EditText。

      【讨论】:

        【解决方案4】:

        你可以试试这个吗?

        EditText[] rEdit = new EditText[25];
        for (int i = 0; i < 25; i++) {
        String edtvId="A"+i;
        int resID = getResources().getIdentifier(edtvId, "id",  "your_package_name");
         rEdit[i] = (EditText) findViewById(resID);
        }
        

        【讨论】:

          【解决方案5】:

          您可以先创建一个带有 id 的数组,然后对其进行迭代:

          int [] ids = new int[] {R.id.A1, R.id.A2, R.id.R3};
          
          int n = 0;
          for (int id : ids) {
              rEdit[n++] = (EditText)findViewById(id);
          }
          

          【讨论】:

            猜你喜欢
            • 2018-11-13
            • 2014-04-26
            • 2014-06-13
            • 1970-01-01
            • 2022-11-02
            • 2014-09-10
            • 2015-12-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多