List to Array Problem bei sqlite-Abfrage

O

Olminator

Neues Mitglied
0
Hallo,

ich habe eine Liste und muss Diese, da rawquery(query, selectionArgs[]) ein Array erwartet, in ein Array konvertieren. Leider funktioniert keiner der folgenden Konvertierungsversuche:

Code:
String[] array = list.toArray();

führt zu

"cannot convert from Object[] to String[]."


Code:
String[] array = (String[]) list.toArray();

führt zu

"java.lang.Object[] cannot be cast to java.lang.String[]."


Code:
String[] array = list.toArray(new String[list.size()]);

führt zu

"java.lang.ArrayStoreException: source[0] of .... cannot be stored in destination array of type java.lang.String[]."


Jetzt sind mir die Ideen ausgegangen. Bitte um Hilfe.

Gruß
 
Code:
String[] array = list.toArray(new String
[list.size()]);
Das müsste eigentlich funktionieren. Da aber die Elemente der Liste alle vom Typ Object sind,
hast du ein Problem beim casten. Du solltest Generics benutzen. Dann dürfte es ohne Probleme funktionieren.

Code:
ArrayList<String> = new ArrayList<String>()
Für mehr Infos : java - Convert ArrayList<String> to String [] - Stack Overflow

Dein Code müsste ungefähr so aussehen:
Code:
        ArrayList<String> list = new ArrayList<String>();
        
        SQLiteDatabase db = this.getReadableDatabase();
        
        //TODO ignore case
        
        Cursor answerSelect = db.query(
                TABLE_NAME,  
                IND_COLUMNS, 
                null, 
                null, 
                null, 
                null, 
                sortBy);
        
        while(answerSelect.moveToNext()) {
            list.add(
                    answerSelect.getString(1),
                    ));
        }
        
        answerSelect.close();
        db.close();

[INDENT]String[] array = list.toArray(new String
[list.size()];
[/INDENT]
 
Zuletzt bearbeitet:
Ich war wohl etwas geizig mit Informationen, trotzdem konntest du mir weiterhelfen, vielen Dank!

Es hat funktioniert und zwar mit dem Befehl:

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




Das Problem war vorher, dass ich "list" nicht mit

ListArray<String> list = new ListArray<String>();

deklariert habe, sondern es eine Liste aus einem eigenen definierten Objekt war, also

ListArray<meinObjekt> list = new ListArray<meinObjekt>();

Da gab es wohl Probleme bei der Konvertierung in einen String[].

Jedenfalls habe ich die Einträge vor der Konvertierung in ein ListArray<String> zwischengespeichert.


Gruß
 

Ähnliche Themen

R
Antworten
6
Aufrufe
982
swa00
swa00
B
Antworten
3
Aufrufe
1.286
swa00
swa00
D
Antworten
17
Aufrufe
322
datNeMo
D
Zurück
Oben Unten