2012-02-25 7 views
0

スコア表を使用してアンドロイドゲームを作成していますが、データベースのスコアは現在数字ではないため表示されません正しい順序で。私のデータベースはスコア表を文字の代わりに数値として読み取る方法(アンドロイド)

 db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" + 
       KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
       KEY_NAME + " TEXT NOT NULL, " + 
       KEY_SCORE + " NUM);"); 

を作成する方法

はこれがあると、これは私がこれを行うには、「ロング」変数の型を使用する人を見

public String getScore() { 

    String[] score = new String[]{ KEY_SCORE }; 
    Cursor c = scoreDb.query(DATABASE_TABLE, score, null, null, null, null, KEY_SCORE+" DESC"); 
    String scoreResult = ""; 

    int iRow2 = c.getColumnIndex(KEY_SCORE); //Cursor looking for column setting equal to these ints. 



    for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) { 
     //Move to first row - where cursor starts and moves to next row as long it is not after last row. 
     scoreResult = scoreResult + c.getString(iRow2) + "\n"; 
     //Returning value of row that it is currently on. 
    } 
    return scoreResult; //returning result 
} 

スコアを返すための私の方法です。..しかしそれはかなりうまく動作することができませんでした!もし誰かが助けてくれたり、私に助けてくれるリソースがあれば、それは素晴らしいことです!

答えて

0

さて、あなたは言った:

を彼らが正しい順序で表示されないように、現在のデータベース内のスコアが数字として見られていません。

これは間違いのようです。スコアが実際に数値である場合、開発しているゲームのデータベースは数値としてそれらを保存する必要があります。あなたがそうするなら、あなたは頭痛を軽減します。

データを修正した場合、order by descが機能するはずです。

編集:私のポイントのthats

、私はそれを修正する方法がわかりません! - Carla Dessi

まあ、使用しているDBMSについては言及していません。今度はcreate tableの文に基づいて、dbmsはデータ型INTEGERをサポートしています。 NUMの代わりにKEY_SCOREを保存してみませんか?

+0

私の意見は、私はそれを修正する方法がわからない! –

+0

私は整数で試してみましたが、それは違いはありません。それはそれを並べ替えますが、9,8,5,3,2,1,19,15,11,0、-1のようになりますに.. –

関連する問題