Preference类有一个名为getExtras()的方法。它可能与Preference Intent相关,也可能不相关,但Extras可以直接使用Intent来获取和放置。Preference类中没有putExtra/s()方法,则...getExtras()的作用是什么?2在哪些场景中使用?
y4ekin9u1#
getExtras()的作用是什么?它没什么用。真的。在the Preference source code中,有一个private成员变量mExtras:
Preference
private
mExtras
private Bundle mExtras;
但是,它从未以任何方式更改过(并且无论如何都不能被外部类访问),除了以下情况:
public Bundle getExtras() { if (mExtras == null) { mExtras = new Bundle(); } return mExtras; } public Bundle peekExtras() { return mExtras; }
我想它将来可能会被用于某些用途,但它是在API 11中添加的,在API 16中仍然没有用。Preference类中没有putExtra/s()方法,那么......它在哪个场景中使用?我想您可以使用它将项目与偏好关联起来,例如:
Bundle extras = myPref.getExtras(); extras.putString("KEY", "Value");
你不需要putExtra()来做这些,而是直接访问Bundle,但这似乎就是它的用处。
putExtra()
Bundle
uemypmqf2#
文档中没有详细解释,但是#getExtras是用于通过#setFragment启动另一个片段的首选项,只要使用PreferenceActivity,首选项中指定的任何额外内容都会传递到指定的片段。
#getExtras
#setFragment
PreferenceActivity
wlp8pajw3#
为了改进这个主题。getExtras()对于将一些数据与动态生成的首选项关联起来特别有用,例如交换机首选项列表。然后附加Preference.OnPreferenceClickListener#onPreferenceChange(Preference,Object)并监听它们。一旦首选项状态发生变化,您将直接获得它们的附加项。否则,您必须为它们对应的有效负载数据维护一个HashMap首选项键。
getExtras()
Preference.OnPreferenceClickListener#onPreferenceChange(Preference,Object)
HashMap
3条答案
按热度按时间y4ekin9u1#
getExtras()的作用是什么?
它没什么用。真的。
在the
Preference
source code中,有一个private
成员变量mExtras
:但是,它从未以任何方式更改过(并且无论如何都不能被外部类访问),除了以下情况:
我想它将来可能会被用于某些用途,但它是在API 11中添加的,在API 16中仍然没有用。
Preference类中没有putExtra/s()方法,那么......它在哪个场景中使用?
我想您可以使用它将项目与偏好关联起来,例如:
你不需要
putExtra()
来做这些,而是直接访问Bundle
,但这似乎就是它的用处。uemypmqf2#
文档中没有详细解释,但是
#getExtras
是用于通过#setFragment
启动另一个片段的首选项,只要使用PreferenceActivity
,首选项中指定的任何额外内容都会传递到指定的片段。wlp8pajw3#
为了改进这个主题。
getExtras()
对于将一些数据与动态生成的首选项关联起来特别有用,例如交换机首选项列表。然后附加Preference.OnPreferenceClickListener#onPreferenceChange(Preference,Object)
并监听它们。一旦首选项状态发生变化,您将直接获得它们的附加项。否则,您必须为它们对应的有效负载数据维护一个HashMap
首选项键。