設定画面でPreferenceActivity
を延長しています。この嗜好活動では、私はそのうちの1つがカスタムメイドである2つの嗜好を持っています。問題は次のとおりです。カスタムPreferenceクラスでsetDefaultValue()を呼び出しても、デフォルト値は設定されません。どうして?
(ListPreference
から拡張)このカスタム設定では、デフォルト値を設定できるようにしたいので、setDefaultValue()
メソッドをオーバーライドします。このメソッドでは、正しい値をとるように解析を行います。 getValue()
関数でこの値を読み取ろうとすると、null
が返されます。
私は、ハードコーディングされた値をそこに入れたときに何が起こるかを考えました(あなたが知っている、多分私は間違ったことをしました、初めてではないでしょう)。さて、私はまだnull
を返します。
私が間違っていることは何ですか?
編集:私はそれらを取得するまでの値が知られていないので、
xmlファイルにはdefaultValueを設定するには、実際にはオプションではありません。
私は回避策を作っ:
- アプリを初めて起動すると:データ
- は優先して値を設定します。
私はコレクションのデータが
getValue()を呼び出す前にsetDefaultValue()を呼び出していますか?環境設定ビューを作成する前に読み込まれたpreferences.xmlファイルにデフォルトの環境設定を設定しました。どのようにデフォルト値を設定しますか? –
はい、私はそうですが、コード内です。問題は、アプリケーションが最初に起動されるまで私はデフォルト値を知らないということです。だから私はそれがユーザーがpreferenceactivityを開く初めて設定しようとする – Nick