私はすでに、などのいくつかの設定でEditTextPreference
作業しましたが、それらはすべて機能しますが、今はを使用する必要があり、RingtonePreference
正しく機能しません。非常に単純なコードは次のとおりです。
<RingtonePreference
android:key="my_ringtone_key"
android:title="Select ringtone"
/>
この設定をクリックすると、idは着信音を選択するためのダイアログを開きますが、保存されません。つまり、着信音を選択し、[OK]を押してから、この設定をもう一度クリックしても、着信音は選択されていません。
次のように、コードから値を取得しようとすると、次のようになります。
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
String tmp = prefs.getString("my_ringtone_key", "none");
次にtmp
、デフォルト値を「none」にします。これは、値が完全にに格納されないことを意味しますSharedPreferences
。
しかし:私がに変更RingtonePreference
した場合EditTextPreference
、すなわち次のように:
<EditTextPreference
android:key="my_ringtone_key"
android:title="Select ringtone"
/>
その後、すべてが機能します。値を編集でき、値が保存されます。もちろん、コードから取得できます。
私はAPIレベル7を使用しています。これをエミュレーターと2つのデバイス、SEXperiaNeoといくつかのAcerでテストしました。
では、どうやっRingtonePreference
て仕事に取り掛かるのですか?RingtonePreference
そして、あなたのために働くかどうかコメントを追加してください。