I have a problem. I want to give a user freedom to select a number of Bluetooth devices in my app. Now I dont know how many Bluetooth devices will there be so I was wondering is
Not sure if I'm understanding this completely, but it sounds like you would want to add a preference for each bluetooth device. To do this, you would want to do something like this:
Inside of the function in which you add the bluetooth device:
SharedPreferences prefs = getDefaultSharedPreferences();
SharedPreferences.Editor editor = prefs.edit();
editor.putString("BT" + nameOfDevice, whateverYouWantToStoreAboutTheDevice);
editor.commit();
If you want to retrieve all the preferences for each bluetooth device, you could get the Set of all keys in your SharedPreferences file, figure out which ones have the "BT" prefix, and pull each of those preferences. Something like this:
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
}
}
However, it just dawned on me that it sounds like you're talking about dynamically adding Preference Views. That's something else entirely =).
Edit: Here's how to add a Preference with a View programmatically from your preferences Activity:
@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);
}
In this example, I gave my PreferenceScreen a key of "PREFSMAIN". You could add any kind of Preference you wanted in this manner.
Consider implementing your own preference activity and using http://developer.android.com/reference/android/preference/PreferenceManager.html