当我点击一个时,如何继续添加首选项?

时间:2011-03-25 17:53:56

标签: android preferences

我有问题。我想让用户自由选择我的应用程序中的许多蓝牙设备。现在我不知道有多少蓝牙设备,所以我想知道是否可以给用户一个选项,点击“添加新的蓝牙设备”自定义首选项并打开一个新的首选项屏幕,让他选择新的蓝牙设置设备

总之,显示器看起来像:

添加新的蓝牙设备..

如果用户添加一个,则应该如下所示:

蓝牙设备1

添加新的Blutooth设备..

如果用户添加另一个,它应该如下所示:

蓝牙设备1

蓝牙设备2

添加新的蓝牙设备..

我知道如何使用标准首选项和基本编码。我唯一想知道的是如何在运行时继续为这些设备添加设置。我将不胜感激。感谢。

2 个答案:

答案 0 :(得分:7)

不确定我是否完全理解这一点,但听起来您会想要为每个蓝牙设备添加首选项。要做到这一点,你可能想做这样的事情:

在您添加蓝牙设备的功能内部:

SharedPreferences prefs = getDefaultSharedPreferences();
SharedPreferences.Editor editor = prefs.edit();
editor.putString("BT" + nameOfDevice, whateverYouWantToStoreAboutTheDevice);
editor.commit();

如果要检索每个蓝牙设备的所有首选项,您可以获取SharedPreferences文件中的所有密钥集,找出哪些具有“BT”前缀,并拉出每个首选项。像这样:

Set<String> keySet = prefs.getAll().keySet();
for(String key : keySet){
   if(key.startsWith("BT"){
       String theValue = prefs.getString(key, null);
       //Do whatever with that value
   }
}

然而,我突然意识到,这听起来像是在谈论动态添加偏好视图。这完全是另一回事=)。

编辑:以下是如何以编程方式从您的首选项活动中添加带有视图的首选项:

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.prefs);
        CheckBoxPreference checkbox = new CheckBoxPreference(this);
        checkbox.setTitle("This is a checkbox preference");
        ((PreferenceScreen)findPreference("PREFSMAIN")).addPreference(checkbox);
    }

在这个例子中,我给PreferenceScreen一个“PREFSMAIN”的键。您可以通过这种方式添加任何类型的首选项。

答案 1 :(得分:0)