2012-09-27 11 views
9

Mam i aplikacji z ponad 10 działań i chciałbym zastąpić metodę onResume() z tym samym kodem we wszystkich z nich.Zastąpienie metody OnResume() wszystkich działań Android

Wiem, że mogę zastąpić tę metodę w każdym działaniu, ale szukam skutecznego rozwiązania.

Ponadto chciałbym wewnątrz tego onResume pokazać komunikat zależnie co aktywność pochodzi, na przykład: jeśli jesteś w główną działalność chcę, że ta wspólna onResume wykryje, że pochodzi z tej działalności i pokazać I'm coming from MainActivity

Dziękuję Ci.

+0

Ale jeśli rozszerzymy BaseClass, nie możemy rozszerzyć żadnej innej klasy, więc czy moje rozwiązanie może być lepsze? – Shrikant

+0

@ Shrikant Nie, to nie dlatego, że nie działa. Możesz zdefiniować 'onResume', ale nie możesz tam umieścić żadnego wspólnego kodu. – zapl

+0

każda inna klasa, jak na przykład, skoro i tak zamierzasz rozszerzyć działalność? – njzk2

Odpowiedz

18

należy Override aktywność w BaseClass i używać BaseClass zamiast aktywności w innych działań:

public class BaseClass extends Activity 
{ 

    public void onResume() 
    { 
    // common code 
    } 
} 

public class OtherClass extends BaseClass 
{ 
} 
+0

Ale jeśli rozszerzymy BaseClass, nie możemy rozszerzyć żadnej innej klasy, więc czy moje rozwiązanie może być lepsze? – Shrikant

+0

Dlaczego musisz przedłużyć inne zajęcia? poprzednio rozszerzasz tylko na aktywność na ?? –

+0

@EldhoseMBabu to jest OtherClass, aby rozszerzyć BaseClasas – Blackbelt

0

Zrób aktywność rodzica i zastąpić swoją onResume, a następnie wykonać wszystkie działania 10 przedłużenia creted rodzica.

+0

Teraz chciałbym wewnątrz tego onResume pokazać wiadomość, w zależności od tego, z której czynności pochodzi, na przykład: jeśli jesteś w MainActivity, chcę, aby ten typowy onResume wykrył, że jest pochodzące z tego działania i pokazują "Nadchodzę z MainActivity" – user1677266

Powiązane problemy