2012-03-30 75 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

它不工作的兄弟.... – 2012-03-30 11:57:30

0

值被重寫,從而跟隨user370305的方式,但也有一些問題依然存在,問題是由於你獲取偏好值,如絃樂味精= pref.getString (r.nextInt(i)+「」,「none」);所以我假設我已經在for循環之外聲明瞭,這個循環在任何地方都沒有改變,所以外循環只會顯示i值,這個值在你提供的塊之外聲明,我認爲是類的字段

+0

ed.putString(「i」,cn.getTips());這裏我是關鍵,cn.getTips()是for循環中每次都使用的相同鍵的值。 – user370305 2012-03-30 12:04:49

相關問題