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 に答える