45516


databaseデータベースに登録されているデータを配列にする方法を教えてください。

適当に作った配列は問題なく動作します。

[code]

    String[] array = {"abc_1","abc_2","abc_3","abc_1","abc_5","abc_4"};
    for(int i = 0; i<6; i++){
        .....array[i]....
    }
    
[/code]

<https://stackoverflow.com/questions/4042434/converting-arrayliststring-to-
string-in-java>  
を参考に下を試しましたがデータは反映されません。

[code]

    ArrayList<String> list = new ArrayList<String>();
    Cursor cursor= database.rawQuery("select * from tbl_abc", null);
        while (cursor.moveToNext()) {
            abc_num = cursor.getString(4);
            list.add(abc_num);
        }
    
    String[] array = list.toArray(new String[list.size()]);
    for (int i = 0; i < array.length; i++) {
        array[i] = list.get(i);
        .....array[i]....
    }
    
[/code]

対処法、お願いします。


CC BY-SA 4.0
2018-07-11T11:38:46.723
45515
2018-07-12T08:28:02.360
2018-07-12T08:28:02.360
29281
29165
question
android java database array
データベースに登録されているデータを配列にする


問題の切り分けのために、  
以下のコードの直前に、`list.size()`をログ出力してはどうでしょうか?  
この時点で`list`の要素が0件であれば、以降の操作が行なわれません。

[code]

    String[] array = list.toArray(new String[list.size()]);
    
[/code]

また、`list`の要素に`"a", "b", "c"`と設定されている場合、上記のコードの結果、取得される`array`の内容も`"a", "b",
"c"`となっているはずです。  
そのため、for文の中で、再度、`array[i] = list.get(i)`する必要はありません。

[code]

    for (int i = 0; i < array.length; i++) {
              array[i] = list.get(i);
    
                .....array[i]....
    }
    
[/code]


CC BY-SA 4.0
2018-07-11T11:57:37.723
45516
2018-07-11T11:57:37.723
45515
answer