2012-03-30 3 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 loop의 바깥쪽에, 나는 for 루프 밖에서 선언되었다고 가정합니다. 그래서 아무 곳에서나 변경되지 않습니다. 그래서 외부 루프는 여러분이 제공 한 블록 밖에서 선언 된 i 값만을 보여줄 것입니다. 클래스의 필드입니다

+0

ed.putString ("i", cn.getTips()); 여기 키가되고 cn.getTips()는 for 루프에서 매번 동일한 키 i의 값입니다. – user370305

관련 문제