2013-08-04 5 views
1

공유 환경 설정 파일에 일부 문자열을 저장하고 작동하지 않는 것 외에는 다른 활동에서 검색하려고합니다. 어디로 잘못 가고 있는지에 대한 안내는 크게 감사하겠습니다. 많은 감사합니다.공유 환경 설정이 제대로 작동하지 않습니다.

public void save(View view) { 
    SavePreferences("name", nameS); 
    SavePreferences("current", currentS); 
    SavePreferences("goal", goalS); 
    SavePreferences("CurrentBmi", cBmiS); 
    SavePreferences("goalBmi", gBmiS); 
    Toast.makeText(this, "profile Saved", Toast.LENGTH_SHORT).show(); 
    startActivity(new Intent(this, MainActivity.class)); 

} 

private void SavePreferences(String key, String value) { 
    SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); 
    SharedPreferences.Editor editor = sharedPreferences.edit(); 
    editor.putString(key, value); 
    editor.commit(); 
} 






public class Progress extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_progress); 
    SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE); 
    String test = sharedPreferences.getString("name", ""); 
    String test2 = sharedPreferences.getString("current", ""); 
    TextView testy = (TextView) findViewById(R.id.textView1); 
    testy.setText(test); 
    TextView testz = (TextView) findViewById(R.id.test2); 
    testz.setText(test2); 
} 

답변

3

코드를 사용하면 sharedpreferences의 활동을 활동 (컨텍스트) 수준으로 제한하고 있습니다.

,321 : 당신이

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); 

또는

SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE); 

getPreferences에 getPreferences(MODE_PRIVATE);

변경이를 사용하고 있기 때문에 활동 활동 MainActivity에 저장

값은 활동 Progress에서 사용할 수 없습니다 0

이 전용 인 기본 설정에 액세스하기위한 SharedPreferences 객체를 검색합니다.

+0

첫 번째 비트는 완벽한 의미로 사용되었습니다. 당신이 getPreferences로 무엇을 얻고 있는지 확실하지 않다. 저장을 변경 한 후 내 검색 방법이 작동하지 않습니까? – Programatt

+0

방금이 활동에 비공개 인 환경 설정에 액세스하기 위해 SharedPreferences 객체를 검색한다고 말하는 문서에서 getPreferences의 정의를 게시했습니다. – Tarun

관련 문제