に渡します。私は、Java言語のいくつかの基本原則や一般的なプログラミングが欠けていると思います。 2次元配列(2次元配列)に整数のテキストファイルを読み込んで2次元配列を別のクラスのメソッドに渡しましたが、そこから結果を出力するとすべて0になります。私は、これが基本的でシンプルなものであり、私が見落としているか、または気づいていないことがあります。私は、クラスマップでコードを読み込むのはここAndroidのJavaファイルを読み込み、結果をメソッド
は次のとおりです。私はクラスAndroidMapに内容をコピーしてみてくださいのはここ
public void load() {
mapWidth = 40;
mapHeight = 32;
//int[][] baseLayer = new int[mapWidth][mapHeight];
baseLayer = new int[mapWidth][mapHeight];
try {
is = file.readAsset("maps/townMap.txt");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.d("android", "could not load file");
}
scanner = new Scanner(is);
scanner.useDelimiter("[\\s,\r\n]+");
try {
for (int i = 0; i < mapWidth; i++) {
for (int j = 0; j < mapHeight; j++) {
while (scanner.hasNext()) {
if (scanner.hasNextInt()) {
baseLayer[i][j] = scanner.nextInt();
}
}
}
}
} finally {
scanner.close();
}
testMap = new AndroidMap(mapWidth, mapHeight, baseLayer, tMapLayer2);
currentMap = testMap;
}
は次のとおりです。 パブリッククラスAndroidMap {
int mapWidth;
int mapHeight;
int[][][] map;
public AndroidMap(int mapWidth, int mapHeight, int[][] baseLayer, int[][]midLayer) {
this.mapWidth = mapWidth;
this.mapHeight = mapHeight;
map = new int[mapWidth][mapHeight][2];
for (int i = 0; i < mapWidth; i++) {
for (int j = 0; j < mapHeight; j++) {
map[i][j][0] = baseLayer[i][j];
map[i][j][1] = midLayer[i][j];
}
}
}
}
アレイをどのように埋め込み、渡し、印刷したかの具体的なコードは、好ましくはSSCCEのフレーバーで、間違いをよりよく理解するのに役立ちます。たとえば、間違った参照を渡しているだけかもしれません。 – BalusC
基本的にアンドロイドの2次元配列はお勧めしません。 2つの並列配列または異なるデータ構造にする必要があります。 – user802421
はい、コードを見てうれしいです。だから私たちはあなたがこれまで何をしてきたのかを見ることができます。次に、あなたが何を使っているかを知ったら、提案をすることができます。 – adamjmarkham