2012-03-30 22 views
0

データベースからフェッチするアプリケーションの起動時にメッセージを設定する必要があります。私はデータベースからデータを取り出し、アプリケーションの起動時にそれを表示する必要がありますが、 "msg0"だけが表示されます。
私のコードでどこに問題があるのか​​分かりません。ヒントと参考にしてください。ここ
は私が間違っていないよ場合は、共有環境設定エディタでの書き込み値を超えている....事前にMeesageはアプリケーションの起動時に表示されませんか?

Random r = new Random(); 
    SharedPreferences pref = getPreferences(Context.MODE_PRIVATE); 
    Editor ed =pref.edit(); 
    final List<ObjectiveWiseQuestion> LocWiseProfile= db.getAllTipsNTricks(); 

    for (final ObjectiveWiseQuestion cn : LocWiseProfile) 
    { 
    for(i=0;i<=counter;i++) 
    { 
     ed.putString("i",cn.getTips()); 
     // ed.putString("0",cn.getTips()); 
    } 

     ed.commit(); 
    } 
    String msg = pref.getString(r.nextInt(i)+"", "none"); 
    Toast.makeText(this, msg, Toast.LENGTH_LONG).show(); 
} 
catch(Exception e) 
{ 
    e.printStackTrace(); 
} 

おかげ..

答えて

0

参照のための私のコードです。

for(i=0;i<=counter;i++) 
    { 
     ed.putString(""+i,cn.getTips()); 
     // ed.putString("0",cn.getTips()); 
    } 
+0

それは働いていない弟.... –

0

値はそうuser370305の方法に従いますが、いくつかの問題があり、まだ存在している、問題はあなたが文字列MSG = pref.getStringとして、好みの値を取得しているためです上書きされているべきです(r.nextInt(i)+ ""、 "なし"); inner forループの外側にあるので、私はforループの外で宣言されていると仮定しています。これはどこでも変更されていないので、外部ループはあなたが提供したブロックの外で宣言されたi値のみを表示しますフィールドのクラス

+0

ed.putString( "i"、cn.getTips());ここで私はキーであり、cn.getTips()はforループで毎回同じキーiの値です。 – user370305

関連する問題