0

PreferenceActivityおよびそのEditText-List-、およびその他の***Preferenceクラスはタイプ のプリファレンスのみをサポートすることが知られていStringます。理由は明らかではありませんが (実際、これは Android の標準を著しく低下させますSharedPreferences)、そうであり、これとは何の関係もないようです。

Booleanすべての標準タイプの共有設定 ( 、FloatIntLong、 ) をシームレスにサポートしStringString Setによって提供されるルック アンド フィールを維持したいと考えていPreferenceActivityます。必要になるケースの 1 つは、一部のプリファレンスがアプリケーションに既に存在し、それらが文字列ではない場合です。

もちろん、既存の設定を文字列に変換する簡単な方法もありますが、これは見苦しく、最後の手段です。PreferenceActivityもう 1 つの方法は、機能を模倣し、すべてのタイプを処理するアクティビティをゼロから作成することです。これは日常業務が多すぎるようです。

誰かが知っていて、***Preferenceすべての標準型をサポートするそのような拡張された子孫の既存の実装を提案できますか? EditTextPreference、およびListPreference必要なタイプにテンプレート化されていれば、最初は十分です。

さまざまな種類の設定を簡単に UI で操作する方法が他にある場合は、それらについても言及してください。

4

1 に答える 1

0

独自のMyPreferenceActivityを作成するのはかなり簡単ですよね。そのアクティビティでは、必要なすべてのタイプの設定を実装でき、新しい設定を作成することもできます。標準のSharedPreferencesをアプリケーション設定レイヤーでラップすることはプログラミングの良い習慣です。そのため、アプリケーションは、このラッピングクラス以外では、設定の実装に依存しません。そのクラスでは、SharedPreferencesが持つ標準の設定を使用して、必要なすべてのタイプの設定を作成できます。または、データベース、ファイル、またはクラウドに保存することもできます。アクティビティでSharedPreferencesを使用する場合、dbまたはクラウドを使用する実装に切り替えるのは困難です。

于 2012-09-24T18:27:27.443 に答える