【问题标题】:How to integrate for loop to fill up array in Java?如何集成for循环以填充Java中的数组?
【发布时间】:2016-09-15 16:29:30
【问题描述】:
public static int[] tabCards() {
    return new int[] {
            R.string.title_section1,
            R.string.title_section2
    };
}

我想用 1 到 41 的数字填充 int[] 数组。我该如何实现?我尝试使用 for 循环,但在这种情况下我不知道如何准确地实现它。

我希望int[]具有title_section1title_section2title_section3title_section4,...直到title_section41

【问题讨论】:

  • 你不能参数化一个变量名,所以最好的办法是看看是否存在一些获取索引的getter方法。
  • 我认为这是重复的,但我会遵从 android 人:stackoverflow.com/questions/7493287/…
  • title_section1 到 41 在strings.xml 中定义,如果该信息有帮助?
  • 这不适用于初始化程序,您必须将数组创建为局部变量并对其进行迭代。
  • 如果您在谈论字符串,如何修改您的 strings.xml 以具有 R.string.title_section1 -> ...title_section41

标签: java android arrays for-loop


【解决方案1】:

免责声明:我不是 Android 用户。但是基于this answer,你应该可以这样做:

public static int[] tabCards() {
    int result = new int[41];
    for (int i = 0; i < result.length; i++) {
        result[i] = getResources().getIdentifier("title_section" + i, "string", getPackageName());
    }
    return result;
}

【讨论】:

  • 感谢您的尝试,但这不起作用。 getResources cannot be referenced from a static context
  • @Vaia 所以...让它成为非静态的?
  • @Vaia 你保存并刷新了吗?您在静态内部类中吗?
  • 只需将上下文传递给tabCards(Context ctx) 并使用它,以便result[i] = ctx.getResources()...
【解决方案2】:
public static int[] tabCards() {
    return new int[] {
        R.string.title_section1,
        R.string.title_section2,
        R.string.title_section3,
        R.string.title_section4,
        R.string.title_section5,
        R.string.title_section6,
        R.string.title_section7,
        R.string.title_section8,
        R.string.title_section9,
        R.string.title_section10,
        R.string.title_section11,
        R.string.title_section12,
        R.string.title_section13,
        R.string.title_section14,
        R.string.title_section15,
        R.string.title_section16,
        R.string.title_section17,
        R.string.title_section18,
        R.string.title_section19,
        R.string.title_section20,
        R.string.title_section21,
        R.string.title_section22,
        R.string.title_section23,
        R.string.title_section24,
        R.string.title_section25,
        R.string.title_section26,
        R.string.title_section27,
        R.string.title_section28,
        R.string.title_section29,
        R.string.title_section30,
        R.string.title_section31,
        R.string.title_section32,
        R.string.title_section33,
        R.string.title_section34,
        R.string.title_section35,
        R.string.title_section36,
        R.string.title_section37,
        R.string.title_section38,
        R.string.title_section39,
        R.string.title_section40,
        R.string.title_section41
    };
}

【讨论】:

  • 我知道它是这样工作的,但这就是我要求 for 循环的原因。
猜你喜欢
  • 2015-01-09
  • 2015-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-12
  • 1970-01-01
相关资源
最近更新 更多