-1

私はアンドロイドの初心者で、AsyncTask 内の for ループ内に配列リストを設定しようとしています。文字列配列から要素を取得して、ハッシュマップの配列リストに入力しようとしています。ただし、ArrayIndexOutofBounds 例外が発生し続けます。なぜこれが起こっているのか理解できませんでした。これを解決する助けがあれば大歓迎です。

マイコード

JSONArray arr= new JSONArray(s);
for(int i = 0; i < arr.length(); i++ ){
HashMap<String, String> map = new HashMap<String, String>();
JSONObject item=arr.getJSONObject(i);

//Getting Comments
String user_comments=item.getString("COMMENTS");
Log.e("usercomment", user_comments); //Returns "~~~1#=#2#=#3#=#4~~~1#=#2#=#3#=#4~~~1#=#2#=#3#=#4"
String[]tokens =  user_comments.split("~~~");
Log.e("token", tokens[0].toString());//Returns "~~~1#=#2#=#3#=#4"
Log.e("token", tokens[1].toString());//Returns "~~~1#=#2#=#3#=#4"
Log.e("token", tokens[2].toString());//Returns "~~~1#=#2#=#3#=#4"
for(int k = 0; k < tokens.length; k++ ){
        String[] one_comment =  tokens[k].split("#=#"); 
        map.put("Avatar", one_comment[0]);//Error thrown here.
        Log.e("Avatar", one_comment[0].toString());
        map.put("Name",one_comment[1] );
        Log.e("Name", one_comment[1].toString());
        map.put("Comment",one_comment[2] );
        Log.e("Comment", one_comment[2].toString());
        map.put("CommentDate",one_comment[3] );
        Log.e("CommentDate", one_comment[3].toString());
           comment_data.add(map);
                                }

                            } 
4

2 に答える 2