Android RoboGuice注入不同的SharedReference
在Android RoboGuice注入不同的SharedReference,android,android-studio,dependency-injection,guice,roboguice,Android,Android Studio,Dependency Injection,Guice,Roboguice,在RoboGuice中使用时: @Inject SharedPreferences prefs; 它注入默认的SharedReferences 如何注入非默认的首选项? 类似于context.getSharedReferences(“我的首选”,context.MODE\u PRIVATE)来自Roboguice文档: 共享首选项 类:共享引用 提供者:SharedReferencesProvider 范围:瞬时注入 点:默认情况下构造函数、字段和方法 roboguice将使用 文件名:“默认
RoboGuice
中使用时:
@Inject
SharedPreferences prefs;
它注入默认的SharedReferences
如何注入非默认的首选项?
类似于
context.getSharedReferences(“我的首选”,context.MODE\u PRIVATE)
来自Roboguice
文档:
共享首选项
类:共享引用
提供者:SharedReferencesProvider
范围:瞬时注入
点:默认情况下构造函数、字段和方法
roboguice将使用
文件名:“默认”。这不是默认的文件名
用于共享首选项。如果要覆盖
文件名,然后您可以在RoboGuice初始化时设置绑定
Android默认共享首选项文件名绑定
bindConstant()
.annotatedWith(SharedPreferencesName.class)
.to("com.mypackage.myapp_preferences");
范例
public class MyActivity extends RoboActivity {
@Inject SharedPreferences sharedPreferences;
}
提供者示例
public class MyActivity extends RoboActivity {
@Inject Provider<SharedPreferences> sharedPreferencesrProvider;
}
指与以下内容相同:
SharedPreferences prefs = getActivity().getPreferences(Context.MODE_PRIVATE);
因此,如果要获取键值,只需使用:
int highScore = prefs.getInt("my_prefs", defaultValue);
并提出新的价值观:
editor.putInt("my_prefs", newHighScore);
希望能有所帮助
editor.putInt("my_prefs", newHighScore);