List to Array Problem bei sqlite-Abfrage

  • 2 Antworten
  • Neuester Beitrag
Diskutiere List to Array Problem bei sqlite-Abfrage im Android App Entwicklung im Bereich Betriebssysteme & Apps.
O

Olminator

Neues Mitglied
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ß
 
markus.tullius

markus.tullius

Experte
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:
O

Olminator

Neues Mitglied
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 - List to Array Problem bei sqlite-Abfrage Antworten Datum
2
1
5