我遇到了共享偏好设置的问题。它没有像我预期的那样工作。登录我的应用程序后,我在共享首选项中存储了一个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());
}});
}
答案 0 :(得分:3)
如果您想在其他地方访问它们,可能需要使用context.getSharedPreferences()
代替context.getPreferences()
。