【发布时间】:2015-05-11 04:21:28
【问题描述】:
我知道,Java 没有预处理器,所以有些东西在 java 中或多或少是不可能的。
真的有 NO 方法可以在循环中用动态名称填充这些数组吗? 我想要类似的东西:
for(int i=0;i<5;i++){
earnTvs[i]=(TextView) findViewById(R.id.INSERT_GREAT_TRICK_HERE("earn"+i+"Tv"));
}
而不是
earnTvs[0] = (TextView) findViewById(R.id.earn1Tv);
earnTvs[1] = (TextView) findViewById(R.id.earn2Tv);
earnTvs[2] = (TextView) findViewById(R.id.earn3Tv);
earnTvs[3] = (TextView) findViewById(R.id.earn4Tv);
earnTvs[4] = (TextView) findViewById(R.id.earn5Tv);
timeTvs[0] = (TextView) findViewById(R.id.time1Tv);
...
ownTvs[0] = (TextView) findViewById(R.id.own1Tv);
...
costTvs[0] = (TextView) findViewById(R.id.build1Tv);
...
buyBtns[0] = (ImageButton) findViewById(R.id.buy1Bt);
...
progressBars[0] = (ProgressBar) findViewById(R.id.prog1pB);
...
buildBtns[0] = (Button) findViewById(R.id.build1Bt);
...
或者有什么诡计可以用的吗?
【问题讨论】:
-
反映有什么帮助吗?这似乎是您正在寻找的,或多或少。
-
getResources().getIdentifier()就是你要找的东西 -
我看到返回一个 int。在我的情况下,我必须如何使用它?
标签: java android dynamic names