2011-08-01 12 views
0

私はアンドロイドで単純な行列初期化をやっていますが、エラー:java.lang.ArrayIndexOutOfBoundsExceptionが表示されます。私はこれをしようとしている:Androidでのマトリックスの初期化?

Integer id = Integer.valueOf(idcateg); 

      System.out.println("Id-ul e"+id); 
      vot = new Integer[sirid.length][id]; 
      for (int i = 0; i < sirid.length; i++) { 
       vot[i][id] = 0; 

      } 
where id is a value between 1 and 5,sirid.length is a number that reflects number of images from different categorys. For example,I want for category 1 to have something like this : 


vot[0][1]=0; 
    vot[1][1]=0; 
    vot[2][1]=0; 

...など

私mistacheどこにありますか?

答えて

1

あなたがidでsirid.lenghするVOT配列のサイズを設定0

からこの

Integer id = Integer.valueOf(idcateg); 

System.out.println("Id-ul e"+id); 
vot = new Integer[sirid.length][id]; 
for (int i = 0; i < sirid.length; i++) { 
    vot[i][id-1] = 0; 
} 

配列インデックスの開始を試みるが、配列は(サイズ)(サイズに0からインデックス値を開始します値は含まれていません)forループを参照してください

+0

英語が貧しい人のために申し訳ありません – Pratik

+0

ありがとうございました – Gabrielle

0

私はidの配列を初期化するためだと思います。 その後、あなたはvot [i] [id]を呼びます。それは、常に高すぎる1になります。

f.e.新しいint型を作成する場合

[3] [3]

あなただけのポジションに0,1および2を呼び出すことができます

幸運idがの長さであると考えられてきたためである

0

文字列は、あなたが同じ要素にアクセスしようとrは...しかし、最後の要素はvat[i][id-1]ですが、ウルだから、より良い

vat[i][id]を取得し、これを使用しようとしている。..

for (int i = 0; i < sirid.length; i++) { 
for(int j = 0; j<id ; j++){ 
       vot[i][j] = 0; 

      } 
}