2013-07-25 13 views
5

PreferenceFragmentでPreferenceをタップするとDialogFragmentを表示しようとしています。私はDialogFragment.showでgetFragmentManager()()を呼び出すとき残念ながら、私は次のエラーが表示されますPreferenceFragmentからダイアログを表示するにはどうしたらいいですか?

Cannot resolve method 'show(android.app.FragmentManager, java.lang.String)'

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

Cannot resolve method 'getSupportFragmentManager()'

は、どのように私はこの作業を行うことができますか?ここで

は、いくつかのコードです:

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

答えて

7

スティーブの回答を基に、android.app.DialogFragment(android.support.v4.app.DialogFragmentではなく)からインポートするDialogFragmentを設定する必要があります。そのライブラリのshow()関数はandroid.app.FragmentManagerを要求します。これは、私が質問に投稿したコードの中でgetFragmentManager()を呼び出して提供することができます。

+0

有用な回答をupvote/acceptすることを検討してください。 –

+4

私はupvoteをしたいと思いますが、私は11人しかいません。最小限に抑えるのはイライラしている。 – IAmKale

4

はこれを試してみてください:

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

あなたはいつもそれがあるタイプ等しいたの断片を保持している活動を呼び出すことができます。

EDIT:

私が間違っていた、PreferenceFragmentは、サポートライブラリに含まれており、Androidの3.0以降でのみ利用可能ですされていません。このpostは、このシナリオを処理するのに役立ちます。

+0

私もそれを試しましたが、android.support.v4.app.FragmentManagerではなくandroid.app.FragmentManagerを返すので、同じエラーが発生しました。 – IAmKale

+2

getActivity()。getSupportFragmentManager()も良くありませんか?あなたはあなたのフラグメントとあなたのFragmentActivityにサポートライブラリのインポートを使用していますか? –

+0

PreferenceFragmentにサポートライブラリクラスがないようです。私はandroid.support.v4を突き抜こうとしましたが、何も見つかりませんでした。 – IAmKale

関連する問題