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);