gpt4 book ai didi

Android SDK 使用 PreferenceActivity 添加设置

转载 作者:行者123 更新时间:2023-11-29 22:01:02 26 4
gpt4 key购买 nike

好的,我正在关注一本 android 书籍,他们正在使用一个扩展 PreferenceActivity 的类向数独游戏添加设置,这个类由 Intent 调用,它所做的只是 addPreferencesFromResource(R.xml.settings),这种方法已被弃用并且不再起作用,这是本书中的代码:

package org.example.sudoku;

import android.os.Bundle;
import android.preference.PreferenceActivity;

public class Prefs extends PreferenceActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.settings);
}

}

现在我调查了这个问题,发现你必须实例化一个 PreferenceManager 才能做到这一点,但在这个例子中我发现他们从 PreferenceFragment 扩展了 Prefs 类(不是书中的 PreferenceActivity),我设法按如下方式处理代码:

/*
* this is for use from API version 11 and after...
*
*/
package org.example.sudoku;

import android.os.Bundle;
import android.preference.PreferenceFragment;
import android.preference.PreferenceManager;

public class Prefs extends PreferenceFragment {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// Make sure default values are applied. In a real app, you would
// want this in a shared function that is used to retrieve the
// SharedPreferences wherever they are needed.
PreferenceManager.setDefaultValues(getActivity(),
R.xml.settings, false);

// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.settings);
}

}

但这并不能完成工作,我不知道是不是因为我是从一个 Intent 调用这个类并且这个类扩展了 PreferenceFragment 而不是 PreferenceActivy 或者这不是做这件事的方法,有人可以帮忙吗我出去了解这个?

最佳答案

final String PREF_SETTINGS_FILE_NAME = "PrefSettingsFile";

阅读您偏好变量的值。

SharedPreferences preferences = getSharedPreferences(PREF_SETTINGS_FILE_NAME, MODE_PRIVATE);
prefSettingsValue1= preferences.getInt("value1", 1); // default value of prefSettingsValue1 will be 1 in case you are trying to read a non-existent value. You can specify it according to your wish. (like I have done for the next value)
prefSettingsValue2= preferences.getInt("value2", 0);
prefSettingsValue3= preferences.getInt("value3", 1);

将值写入到您的偏好变量中。

 SharedPreferences preferences = getSharedPreferences(PREF_SETTINGS_FILE_NAME, MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("vaule1", prefSettingsValue1);
editor.putInt("value2",prefSettingsValue2);
editor.putInt("value3",prefSettingsValue3);
editor.commit();

注意:无需使用任何 XML 文件来存储首选项。只需将值保存在首选项变量中,稍后在您的应用程序中读取它们。不仅仅是整数,你还可以通过getStringputString函数来读写getput字符串,分别。此外,您不需要扩展任何首选项 Activity/fragment 。

关于Android SDK 使用 PreferenceActivity 添加设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11936827/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com