SharedPreferences不能像我期望的那样工作

时间:2012-11-24 02:45:11

标签: android properties sharedpreferences

我遇到了共享偏好设置的问题。它没有像我预期的那样工作。登录我的应用程序后,我在共享首选项中存储了一个id(google id)。在随后的活动(稍后约3个活动)上,我尝试检索id,但它为null。如果它很重要,我试图在onClickListener(从按钮)中检索共享首选项。我不确定我做错了什么。任何帮助将不胜感激。

我如何设置:

    public void setLoginPreferences(String id){

    SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
    editor.putString(Constants.ID_KEY_NAME, id);
    editor.commit();
}

我是如何尝试的:

    //setup clickListener for Sumbit Comment
    Button submitButton = (Button) findViewById(R.id.submitComment);
    submitButton.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {
           //myContext is a global variable set on the onCreate of the activity
            SharedPreferences prefs = myContext.getPreferences(MODE_PRIVATE);
            String userId = prefs.getString(Constants.ID_KEY_NAME, null);   
            SetConcertCommentAsynchWebservice scca = new SetConcertCommentAsynchWebservice(myContext,concertId,userId,Float.toString(soundRatingBar.getRating()),Float.toString(showRatingBar.getRating()),userSubmittedComments.getText().toString()); 
        }});
}

1 个答案:

答案 0 :(得分:3)

如果您想在其他地方访问它们,可能需要使用context.getSharedPreferences()代替context.getPreferences()