如果更改,PreferenceActivity中的卷不会保存

时间:2012-05-17 09:20:25

标签: android volume preferenceactivity ringtone

如何从PreferenceActivity更改音量?我有这个xml:

<RingtonePreference
        android:name="Ringtone Preference"
        android:summary="Select a ringtone"
        android:title="Ringtones"
        android:key="ringtonePref" />
<VolumePreference
    android:name="Volume Preference"
    android:summary="Ringtone Volume"
    android:title="Ringtone Volume"
    android:key="ringVolPref"/>

</PreferenceCategory>

并且Class扩展了PreferenceActivity:

public class SettingTest extends PreferenceActivity {

@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.layout.ringtone);

我不知道如何更改音量(如果我运行应用程序,它会显示Volume SeekBar,但不会保存更改)

2 个答案:

答案 0 :(得分:0)

也许试试这个:

@Override
protected void onStart() {
    addPreferencesFromResource(R.xml.settings);
    super.onStart();
}

从xml中删除 android:name , 首选项xml应该是这样的 this

答案 1 :(得分:0)

[VolumePreference][1]实际上隐藏在API中,因此您可能不应该使用它。 当我使用这段代码时,实际存储了该值;它记住了SeekBar的立场。 当然,该值不会保存在应用程序的首选项文件中,因为这些设置应该应用于系统,而不是应用程序......

但是,即使它似乎正确地记住了位置,但音量实际上并没有受到影响。您可能想看看设置应用程序是如何做到的:

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android-apps/4.0.4_r1.2/com/android/settings/RingerVolumePreference.java#56

相关问题