I am writing my first APK and I need some help. I find myself using a lot of similar code to find preference from a preference XML.
Here is a code snippet:
final Preference backupPref = findPreference("backuptw");
backupPref.setOnPreferenceClickListener(new OnPreferenceClickListener(){
public boolean onPreferenceClick(Preference preference) {
if(preference == backupPref)doBackup();
return true;
}
});
final Preference restorePref = findPreference("restoretw");
restorePref.setOnPreferenceClickListener(new OnPreferenceClickListener(){
public boolean onPreferenceClick(Preference preference) {
if(preference == restorePref)doRestore();
return true;
}
});
final Preference tw160Pref = findPreference("tw160");
tw160Pref.setOnPreferenceClickListener(new OnPreferenceClickListener(){
public boolean onPreferenceClick(Preference preference) {
if(preference == tw160Pref)doTW("160");
return true;
}
});
final Preference tw192Pref = findPreference("tw192");
tw192Pref.setOnPreferenceClickListener(new OnPreferenceClickListener(){
public boolean onPreferenceClick(Preference preference) {
if(preference == tw192Pref)doTW("192");
return true;
}
});
final Preference tw240Pref = findPreference("tw240");
tw240Pref.setOnPreferenceClickListener(new OnPreferenceClickListener(){
public boolean onPreferenceClick(Preference preference) {
if(preference == tw240Pref)doTW("240");
return true;
}
});
final Preference restartPref = findPreference("restart");
restartPref.setOnPreferenceClickListener(new OnPreferenceClickListener(){
public boolean onPreferenceClick(Preference preference) {
if(preference == restartPref)doRestart();
return true;
}
});
final Preference sortPref = findPreference("sort");
sortPref.setOnPreferenceClickListener(new OnPreferenceClickListener(){
public boolean onPreferenceClick(Preference preference) {
if(preference == sortPref)doSort();
return true;
}
});
I am using findPreference a lot of times, which I do not like at all. Can anyone suggest something better?
You can make a HashMap for all your preferences where keys will be names of preferences and values some integer indexes which you will add. E.g.
And so on…
Then just make only one onClickListener like this:
Assign this listener to all your preferences and have fun. In this case your code will not look like it does now.