2009-09-01 6 views
1

Je reçois une donnée String de Cursor, mais je ne sais pas comment la convertir en tableau. Comment puis je faire ça?Convertir une chaîne en tableau (android)

String[] mString; 
for(cursor.moveToFirst(); cursor.moveToNext(); cursor.isAfterLast()) { 
    mTitleRaw = cursor.getString(cursor.getColumnIndex(SBooksDbAdapter.KEY_TITLE_RAW)); 
} 
mString = mTitleRaw ???? 

Répondre

4

Vous pouvez simplement envelopper mTitleRaw dans un tableau unique élément comme ceci:

mString = new String[] { mTitleRaw }; 

Mise à jour: Ce que vous voulez sans doute est d'ajouter toutes les lignes à un seul tableau, que vous pouvez faire avec un ArrayList et muter vers un tableau String [] comme ceci:

ArrayList strings = new ArrayList(); 
for(cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { 
    String mTitleRaw = cursor.getString(cursor.getColumnIndex(SBooksDbAdapter.KEY_TITLE_RAW)); 
    strings.add(mTitleRaw); 
} 
Sting[] mString = (String[]) strings.toArray(new String[strings.size()]); 
+1

Etes-vous sûr que c'est bon? Votre premier élément est ignoré, ne devrait pas être: pour (c.moveToFirst();! C.isAfterLast(); c.moveToNext()) – Pentium10

1

comme Pentium10 souligné le code de marshall_law a un bogue. Il ignore le premier élément du curseur. Voici une meilleure solution:

ArrayList al = new ArrayList(); 
    cursor.moveToFirst(); 
    while(!cursor.isAfterLast()) { 
     Log.d("", "" + cursor.getString(cursor.getColumnIndex(ProfileDbAdapter.KEY_PROFILE_NAME))); 
     String mTitleRaw = cursor.getString(cursor.getColumnIndex(ProfileDbAdapter.KEY_ID)); 
     al.add(mTitleRaw); 
     cursor.moveToNext(); 
    } 

Comme je l'ai dit, ce code inclura le premier élément dans le curseur.

Questions connexes