Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我想在Android中扩展SharedReferences类_Android_Sharedpreferences - Fatal编程技术网

我想在Android中扩展SharedReferences类

我想在Android中扩展SharedReferences类,android,sharedpreferences,Android,Sharedpreferences,我想从Android创建SharedReferences的扩展,以便创建一些自定义方法,例如: getBoolean (int KeyFromStringTable, boolean defValue); 而不是打字: getBoolean (getString (R.string.KeyString), defValue); 每一次 然而,SharedReferences不是一个类,它是一个接口(dang)。有人建议我如何向SharedReferences添加一些功能吗?创建一个包装器,保

我想从Android创建SharedReferences的扩展,以便创建一些自定义方法,例如:

getBoolean (int KeyFromStringTable, boolean defValue);
而不是打字:

getBoolean (getString (R.string.KeyString), defValue);
每一次


然而,SharedReferences不是一个类,它是一个接口(dang)。有人建议我如何向SharedReferences添加一些功能吗?

创建一个包装器,保存您的
SharedReferences
,并添加助手方法

或者,在某处创建静态帮助器方法

或者,创建自己的
SharedReferences
实现,可能是通过分叉现有实现。这种方法有很多缺点,尤其是你不能强迫Android使用你的实现,这意味着在它检索
SharedReferences
(例如,首选项屏幕)的地方,它不会使用你的实现。此外,您还需要跟踪对原始实现的更改,以防这些更改与您的fork相关

或者,创建某种键盘宏来保存键入


可以想象,有一些基于注释的方法来处理这个问题,但是我的注释功能很弱,因此我不知道所有的注释功能。

使用装饰器模式。我想在另一个问题中找到了答案:创建一个类,将接口封装到共享首选项中。通过这样做,我可以使用我想要的行为向类添加方法。它仍在建设中,但我很乐观。我认为这个解决方案基本上就是您在第1项和第2项中推荐的。@Rich:基本上是第一个选择。很公平。谢谢你的帮助。