以编程方式更改变量标识符

时间:2012-12-03 12:28:43

标签: android

我有一个关于Android的问题,我一直在努力。 在我的android项目中,有一个名为Tracks.java的类,在这个类中有静态int []这样:

public class Tracks(){

static int[] Track1 = {1, 2, 3, 4, 5}
static int[] Track2 = {6, 7, 8, 9, 10}
.....
static int[] Track10 = {45, 46, 47, 48, 49}

} 

在另一个名为Race.java的类中,我需要使用这些int []依赖于当前使用的轨道号。

public class License extends Activity implements OnClickListener{

        int TrackNO = 1;
        int checkpoint;

        @Override
        protected void onCreate(Bundle savedInstanceState) {

        checkpoint = Tracks.Track1[0]; //Now checkpoint == 1;

        }

如果我现在将TrackNO更改为2,则int检查点应= = 6。 如何实现这一目标?

谢谢!

2 个答案:

答案 0 :(得分:2)

将您的曲目放在ArrayList中。

ArrayList<int[]> trackList = new ArrayList<int[]>();

trackList.add(track1);
trackList.add(track2);

稍后

int[] track = trackList.get(1);

答案 1 :(得分:-1)

不要在checkpoint中设置onCreate变量。曲目在运行期间进行操作,对吧?您应该有一个名为changeTrack(int track)的方法:

public void changeTrack(int track) {
    switch(track) {
    case 1:
        checkpoint = Tracks.Track1[0];
        break;
    case 2:
        checkpoint = Tracks.Track2[0];
        break;
    ....
    }
}

或者,您可以将所有Track数组添加到另一个数组/列表,并从该列表中访问它们。