我正在爲我的應用程序創建抽象活動類,我將爲每個活動重複使用。創建抽象活動類
超級類:android.app.Activity
我的抽象類延伸android.app.Activity myActivity
例activty在我的應用延伸myActivity。
我會在這些exampleActivity
中有10-20個。
如何寫我的抽象類(#2)來強制我的示例類重寫android.app.Activity
中的方法,如onCreate()
和onStart()
?
這在Java中可能嗎?
我正在爲我的應用程序創建抽象活動類,我將爲每個活動重複使用。創建抽象活動類
超級類:android.app.Activity
我的抽象類延伸android.app.Activity myActivity
例activty在我的應用延伸myActivity。
我會在這些exampleActivity
中有10-20個。
如何寫我的抽象類(#2)來強制我的示例類重寫android.app.Activity
中的方法,如onCreate()
和onStart()
?
這在Java中可能嗎?
不是。
但是您可以創建抽象函數myOnCreate和myOnStart並在onCreate和onStart的抽象類實現中調用這些函數。
雖然很難看出強制myOnCreate而不是onCreate帶來的好處,但您可能還想製作onCreate/onStart final。
Nop。使用onCreate和onStart方法創建一個接口會更加優雅,如果您需要強制其他人在其實現中重寫。
並通過構造函數或設置函數將接口實例傳遞給抽象活動類。
@ user721378:我很想知道如何與一個Android活動的作品出來。 – Squonk 2011-04-25 03:20:22
對不起,這是一個活動課。請忘記我說的有關構造函數或setter。你可以通過意圖傳遞接口類的名字,但它使一切變得更加複雜。你爲什麼不創建一個不同名稱的抽象方法? – 2011-04-25 03:31:34
這是可能的,
public abstract class MyActivity extends android.app.Activity
{
public abstract void onCreat(...);
public abstract void onStart(...);
}
public class OtherActivity extends MyActivity
{
public void onCreate(...)
{
//write your code
}
public void onStart(...)
{
//write your code
}
}
非常有幫助的答案,謝謝。 – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 2011-04-25 03:39:54
雖然這裏介紹的技術是一個很好的技術,但我對這個答案中的「不是真的」有點困惑。你可以在'Activity'的抽象子類中使'onCreate'等抽象。也許這是一個壞主意(特別是像'onBackPressed'這樣的方法有非空的默認實現,您可能想通過'super'調用),但它當然可以完成。 – 2011-04-25 17:48:31