Вы можете создать HashMap для всех ваших предпочтений, где ключами будут имена предпочтений и значения некоторых целочисленных индексов, которые вы добавите. Э.Г.
final int INDEX_BACKUPTW = 0;
HashMap<String, Integer> mPrefMap = new HashMap<String, Integer>();
mPrefMap.put("backuptw", INDEX_BACKUPTW)
И так далее ...
Тогда просто сделайте только один onClickListener следующим образом:
OnPreferenceClickListener(){
public boolean onPreferenceClick(Preference preference) {
if (preference.hasKey()) {
int index = mPrefMap.get(preference.getKey());
switch (index)
{
case INDEX_BACKUPTW:
doBackup();
break;
case INDEX_SOME_OTHER_INDEX_I_HAVE:
doWhatever();
break;
default:
Log.e(TAG, "Achtung!");
}
}
return true;
}
}
Назначьте этому слушателю все ваши предпочтения и получайте удовольствие. В этом случае ваш код не будет выглядеть так, как сейчас.