我有一个关于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。如何实现这一点?
谢谢!
将您的曲目放入 ArrayList 中。
ArrayList<int[]> trackList = new ArrayList<int[]>();
trackList.add(track1);
trackList.add(track2);
后
int[] track = trackList.get(1);
不要在 onCreate
中设置 checkpoint
变量。轨道在运行时会追逐,对吧?您应该有一个方法,例如,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
数组添加到另一个数组/列表中,并从该列表访问它们。