0

Preferenceクラスには、getExtras()というメソッドがあります。
プリファレンスインテントに関連している場合と関連していない場合がありますが、エクストラはインテントを直接使用して取得および配置できます。
PreferenceクラスにメソッドputExtra/s()がない場合
、getExtras()の目的は何ですか?どのシナリオで使用されていますか?

4

2 に答える 2

5

getExtras()の目的は何ですか?

それは実際には何の役にも立ちません。真剣に。

ソースコードPreferenceprivateメンバー変数がありますmExtras

private Bundle mExtras;

ただし、次の場合を除いて、変更されることはありません(また、外部のクラスからアクセスすることはできません)。

public Bundle getExtras() {
    if (mExtras == null) {
        mExtras = new Bundle();
    }
    return mExtras;
}
public Bundle peekExtras() {
    return mExtras;
}

将来的には何かに使われるかもしれないと思いますが、API 11で追加され、API16では役に立たないままです。

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 に答える