首页 文章

SharedPreferences.Editor(Android)混乱

提问于
浏览
3

为了变得更好,我想学习http://developer.android.com/training/basics/data-storage/shared-preferences.html并且想要清楚一点 .

让我们说:

SharedPreferences sharedPref = getSharedPreferences(USERNAME, MODE_PRIVATE);

SharedPreferences.Editor editor = sharedPref.edit();

当我将鼠标悬停在edit()上时(我使用Eclipse IDE),我学到了这一点

打开声明编辑器android.content.SharedPreferences.edit()公共抽象SharedPreferences.Editor edit()在API级别1中添加为这些首选项创建一个新的编辑器,通过该编辑器可以对首选项中的>数据进行修改并自动提交这些更改回到SharedPreferences>对象 . 请注意,您必须调用commit()以使您在编辑器中执行的任何更改实际显示在SharedPreferences中 . 返回返回SharedPreferences.Editor接口的新实例,允许您修改此SharedPreferences对象中的值 .

所以我实际上有三个小问题:

1 / edit()是一个抽象方法,所以在哪个类中有edit()被覆盖(我已经学会了位于SharedPreferences接口的“public abstract SharedPreferences.Editor edit()”,所以必须有一些类在那里实现这个接口)

2 / SharedPreferences.Editor是一个接口 . 据我所知,接口无法实例化 . 为什么上面的编辑器对象可以接收API中所述的“SharedPreferences.Editor接口的新实例” .

3 /我刚刚开始学习Android几天,这是我用这种方式学习的好方法,这意味着要解剖所有内容以使我们清楚吗?

谢谢

1 回答

  • 1

    您应该理解的主要事情是,您不应该关心谁以及如何实现您收到的抽象类(或接口) . 在 SharedPreferences 的情况下,它由Android内部类实现(这意味着它不可用) SharedPreferencesImpl .

    换句话说,你不应该关心细节 . 界面只描述了这个对象可以做什么(你应该相信它) .

    附:到目前为止,正如你正在学习的东西 - 这是一个很好的方法 .

相关问题