0

我有一个关于 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。这如何实现?

谢谢!

4

2 回答 2

2

将您的曲目放入 ArrayList 中。

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

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

之后

int[] track = trackList.get(1);
于 2012-12-03T12:33:28.350 回答
-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数组添加到另一个数组/列表中,然后从该列表中访问它们。

于 2012-12-03T12:36:10.537 回答