6

PreferenceFragment で Preference をタップすると、DialogFragment を表示しようとしています。残念ながら、DialogFragment.show()で getFragmentManager() を呼び出すと、次のエラーが表示されます。

メソッド 'show(android.app.FragmentManager, java.lang.String)' を解決できません

問題は、このフラグメントからandroid.support.v4.app.FragmentManagerを参照できないように見えることです。このフラグメントを担当するアクティビティは FragmentActivity から拡張されていますが、明らかにそれだけでは不十分です。getSupportFragmentManager()も呼び出してみましたが、次のエラーが発生しました。

メソッド「getSupportFragmentManager()」を解決できません

どうすればこれを機能させることができますか?

ここにいくつかのコードがあります:

gPrefAcknowledgements.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener()
{
    @Override
    public boolean onPreferenceClick(Preference preference)
    {
        DialogAcknowledgements dialogAck = new DialogAcknowledgements();
        dialogAck.show(getFragmentManager(), "acknowledgements");
        return true;
    }
});
4

2 に答える 2

5

これを試して:

dialogAck.show(getActivity().getFragmentManager(), "acknowledgements");

フラグメントを保持するアクティビティは、それがどのタイプであるかをいつでも呼び出すことができます。

編集:

私は間違っていました。PreferenceFragment はサポート ライブラリに含まれておらず、Android 3.0 以降でのみ使用できます。この投稿は、このシナリオに対処するのに役立ちます。

于 2013-07-25T21:25:24.527 に答える