0

Preference 类有一个名为 getExtras() 的方法。
它可能与 Preference 意图相关,也可能不相关,但可以直接使用该意图获取和放置 Extras。
Preference类中没有putExtra/s()方法,那么……
getExtras()的目的是什么?在哪些场景下使用?

4

2 回答 2

5

getExtras() 的目的是什么?

它并没有真正做任何有用的事情。严重地。

源代码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直接访问。但这似乎是它有用的全部。

于 2013-02-20T18:27:18.370 回答
1

文档中没有很好地解释它,但#getExtras它适用于通过#setFragment. 只要使用PreferenceActivity.

于 2017-09-20T00:14:24.277 回答