2011-06-28 18 views
7

環境設定画面を(正しく)実装しようとしていますが、xmlファイルから環境設定を読み込むために使用されるすべてのメソッドが推奨されません。 devサイトの公式のサンプルコード(PreferenceActivity)は廃止予定のメソッドを使用しています。誰かがxmlファイルで設定画面を実装する方法を見つけましたが、addPreferencesFromResource(int)またはfindPreference(CharSequence)のどちらも使用しませんでしたか?あるいは、代わりの方法をまだ実装していない場合、そのメソッドは廃止予定とマークされていますか?廃止予定のメソッドを使用しない環境設定

EDITは:Androidのバージョン2.1

+1

どのバージョンからサポートしますか?私が見ているように、それは11年以降に変更されています。あなたがこれ以下のものを使用しているなら、それはそれらのために非推奨ではありません。 – Vinay

答えて

6

のために開発なぜその非推奨となり、どのような選択肢がかなりよくドキュメントで説明されている。

は、これは好みの階層を表示するために活動するための基本クラスですユーザに提供する。 HONEYCOMB以前は、このクラスでは1組の優先度の表示のみが許可されていました。この機能は新しいPreferenceFragmentクラスに追加されました。以前のモードでPreferenceActivityを使用している場合は、ここで廃止予定のAPIに適用されます。言い換えれば

あなたが対応ハニカムになりたい場合は、あなたはあなたのPreferenceActivityためPreferenceFragmentを使用する必要があります。フラグメントの使用方法の詳細については、dev guideを参照してください。

+2

直感的ではないようです。好みの代わりに好みの断片をサポートすることはなぜ重要ですか? AndroidがLayoutFragmentやViewFragmentの代わりにLayoutやViewを非難するのを防ぐにはどうすればいいですか? – KalEl

+0

まず、レイアウトはビューです。つまり、あなたは基本的に 'ViewFragment'について質問しています。そして、あなたの質問は奇妙です。 'View'sは完全に異なる生き物なので、意味的には' Activities'や 'Fragments'とは何の共通点もありません。したがって、 'ViewFragment'を持つことに意味がありません。それを持つ理由があれば、これは現在技術的に不可能です。「フラグメント」はサブフラグメントを含むことはできませんが、「ビュー」は洗練されたツリー階層で配列できます。 – inazaruk

+0

それは素晴らしいですが、これは廃止されたクラスのように自動的にアプリケーションの設定を自動的に保存する方法を教えていません – slinden77

6

Android 3では、APIレベル11では、フラグメントベースのプリファレンスモデルが導入されました。したがって、「現代のフラグメントベースのPreferenceActivityには関係のない」メソッドが廃止されました。

オンラインリファレンスは最新バージョンであるため、推奨されていないメソッドが表示されます。 [APIレベル]ドロップダウンを操作すると、特定のAndroidバージョンにはないメソッドにマークを付けることができますが、説明を一致するように更新することはありません。

Android 3+のサポートを予定していない場合は、以前のバージョンのソリューションでは動作しないため、古い方法を使用するだけです。

+0

Android 3+と3 - をサポートするにはどうすればよいですか?出来ますか?? findpreferenceは3+に対しては機能しませんが、フラグメントベースの設定は3-for ...のためには機能しません。 – user23

+1

両方をサポートするために、フラグメントベースの設定をサポートするバージョンとそうでないバージョンの実装を行います'if(Build.VERSION.SDK_INT Flygenring

+0

私はそのオプションを避けようとしていましたが、私はそれが唯一のものだと恐れています。ご回答有難うございます! – user23

関連する問題