I’m really struggling with classes, extend and implement.
Well at android I want to create a preference screen and check the user input.
I can use therefore a file named preferences.class and do everything I need with the following class:
public class Preferences extends PreferenceActivity implements OnSharedPreferenceChangeListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sp, String key) {
}
}
But isn’t it better to split this up in different classes? and if yes how?
You can have a
PreferenceChangeListenerwhich implementsOnSharedPreferenceChangeListenerand your Preference class will have aPrefernceChangeListenerOn a general note if your class has a property which can be externalized you should try to use HAS A relationship, you will use IS A relationship when your class provides functionality on top of inherited values.
Most of the cases IS A can be avoided, unless your class doesnt has a meaning without inheritance favor HAS A over IS A relationship.
Prefer composition over inheritance