我想覆蓋從Activity派生的類(稱爲NativeActivity),所以我可以在Java中創建自己的內容視圖,而將其餘的功能留在圓括號中。我必須使用NativeActivity,因爲它是在Xperia Play上獲取觸控板輸入的唯一方法。我需要重寫的方法是NativeActivity.onCreate()方法,因爲這是我不想要的內容視圖被設置的位置。問題是,如果我沒有在重寫的onCreate()方法中調用super.onCreate(),則會引發SuperNotCalledException。這來自Activity類。但是,所有的Activity.onCreate()方法並設置一個布爾值:Android:有沒有解決SuperNotCalledException的方法?
protected void onCreate(Bundle savedInstanceState) {
mVisibleFromClient = !mWindow
.getWindowStyle()
.getBoolean(
com.android.internal.R.styleable.Window_windowNoDisplay,
false);
mCalled = true;
}
我能做到這一點檢查在我自己的代碼,使用Activity.getWindow()方法。不幸的是,mCalled布爾值是私有的,所以我不能在我自己的代碼中將其設置爲true。我似乎無法弄清楚如何繞過這個要求。有任何想法嗎?
不良副作用來自NativeActivity.onCreate()方法。在Java中沒有super.super。重寫該方法的重點是我不想調用它。 – paulscode
@ user1002212我不知道我是否理解你。這只是個人的願望,不要調用super.onCreate()? – spatulamania
這沒什麼個人的,這是一個要求。正如我上面的問題所述,我的類擴展了NativeActivity,而不是Activity。我想避免調用NativeActivity.onCreate(如果我調用super.onCreate,會發生這種情況),因爲在NativyActivity.onCreate中它設置了內容視圖(我不想這麼做)。 – paulscode