2012-05-23 3 views
0

Я действительно борюсь с классами, расширяю и реализую.борется с классом, расширяет и реализует

Ну и в андроиде я хочу создать экран настроек и проверить вход пользователя.

можно использовать таким образом файл с именем preferences.class и делать все, что нужно со следующего класса:

 public class Preferences extends PreferenceActivity implements OnSharedPreferenceChangeListener { 

     @Override 
protected void onCreate(Bundle savedInstanceState) { 
} 

     @Override 
     public void onSharedPreferenceChanged(SharedPreferences sp, String key) { 
    } 
} 

Но не лучше разделить это в разных классах? и если да, то как?

ответ

2

Вы можете иметь PreferenceChangeListener, который реализует OnSharedPreferenceChangeListener и ваш класс Предпочтение будет иметь PrefernceChangeListener

public class Preference extends PreferenceActivity { 

    private PrefernceChangeListener prefernceChangeListener; 

    public void addPreferenceChangeListener(PrefernceChangeListener prefernceChangeListener){ 
    this.prefernceChangeListener = prefernceChangeListener; 
    } 

    public PrefernceChangeListener getPrefernceChangeListener(){ 
    return this.prefernceChangeListener; 
    }  
} 

На общей ноте, если ваш класс имеет свойство, которое может быть вовне, вы должны попробовать использовать ИМЕЕТ отношения, вы будете использовать отношение IS A, когда ваш класс предоставляет функциональность поверх унаследованных значений.

Большинство случаев ЯВЛЯЕТСЯ можно избежать, если ваш класс оленья кожа не имеет смысла без наследования пользу имеет над ЯВЛЯЕТСЯ отношения.

Prefer composition over inheritance

+0

Thank you ... очень полезноl !! Я также нахожу разные примеры на http://tseng-blog.nge-web.net/blog/2009/02/14/implementing-listeners-in-your-android-java-application/ – user1404924

+0

Добро пожаловать – mprabhat

Смежные вопросы