San*_*eep 31 android sharedpreferences
我已经创建了一个存储用户设置的共享首选项活动,现在我想获取活动或普通java类中的值.请提供一个解决方案或示例我已经尝试过此代码但失败了.
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
SharedPreferences channel=this.getSharedPreferences(strFile, Context.MODE_PRIVATE);
strChannel=channel.getString(keyChannel,"Default").toString();
Toast.makeText(getApplicationContext(), strChannel, Toast.LENGTH_LONG).show();
}
Run Code Online (Sandbox Code Playgroud)
在此代码中strfile,例如.com.android.pack.ClassName是SharedPreference Activity从价值观是牵强,并且keyChannel是关键的是在相同SharedPreference Activity.
请提供解决方案.
Ume*_*esh 69
如果您有一个SharedPreferenceActivity,您可以通过它保存您的值
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
String imgSett = prefs.getString(keyChannel, "");
Run Code Online (Sandbox Code Playgroud)
如果值保存在Activity中的SharedPreference中,那么这是保存它的正确方法.
SharedPreferences shared = getSharedPreferences(PREF_NAME, MODE_PRIVATE);
SharedPreferences.Editor editor = shared.edit();
editor.putString(keyChannel, email);
editor.commit();// commit is important here.
Run Code Online (Sandbox Code Playgroud)
这就是你可以检索这些值的方法.
SharedPreferences shared = getSharedPreferences(PREF_NAME, MODE_PRIVATE);
String channel = (shared.getString(keyChannel, ""));
Run Code Online (Sandbox Code Playgroud)
另请注意,您也可以在非Activity类中执行此操作,但唯一的条件是您需要传递Activity的上下文.使用此上下文来获取SharedPreferences.
mContext.getSharedPreferences(PREF_NAME, MODE_PRIVATE);
Run Code Online (Sandbox Code Playgroud)
小智 5
我尝试使用此代码从活动中检索共享首选项,但无法使其工作:
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
sharedPreferences.getAll();
Log.d("AddNewRecord", "getAll: " + sharedPreferences.getAll());
Log.d("AddNewRecord", "Size: " + sharedPreferences.getAll().size());
Run Code Online (Sandbox Code Playgroud)
每次我尝试时,我的首选项都会返回 0,尽管首选项活动保存了 14 个首选项。我终于找到了答案。我将其添加到 onCreate 部分的首选项中。
getPreferenceManager().setSharedPreferencesName("defaultPreferences");
添加此语句后,我保存的首选项按预期返回。我希望这可以帮助其他可能遇到与我相同问题的人。
| 归档时间: |
|
| 查看次数: |
96978 次 |
| 最近记录: |