저는 Activity에서 파생 된 클래스 (NativeActivity라고 함)를 재정의하려고하므로 Java에서 만든 자체 컨텐츠 뷰를 설정할 수 있으며 나머지 기능은 그대로 유지합니다. Xperia Play에서 터치 패드 입력을 얻는 유일한 방법이기 때문에 NativeActivity를 사용해야합니다. 재정의 할 필요가있는 메서드는 NativeActivity.onCreate() 메서드입니다.이 메서드는 원하지 않는 콘텐츠 뷰를 설정하기 때문에 사용됩니다. 문제는, 재정의 된 onCreate() 메서드에서 super.onCreate()를 호출하지 않으면 SuperNotCalledException이 throw됩니다. 이것은 Activity 클래스에서 가져옵니다.안드로이드 : SuperNotCalledException 주위에 방법이 있습니까?
이 protected void onCreate(Bundle savedInstanceState) {
mVisibleFromClient = !mWindow
.getWindowStyle()
.getBoolean(
com.android.internal.R.styleable.Window_windowNoDisplay,
false);
mCalled = true;
}
나는 Activity.getWindow() 메소드를 사용하여 내 자신의 코드에 그 검사를 수행 할 수 있습니다하지만 모든은 Activity.onCreate() 메소드는 boolean를 설정 않습니다. 안타깝게도 mCalled 부울은 private이므로 내 코드에서 true로 설정할 수는 없습니다. 이 요구 사항을 해결하는 방법을 알아낼 수 없습니다. 어떤 아이디어?
나쁜 부작용은 NativeActivity.onCreate() 메소드에서 비롯됩니다. Java에는 super.super가 없습니다. 메서드를 재정의하는 것은 내가 그것을 호출하고 싶지 않다는 것이다. – paulscode
@ user1002212 내가 당신을 이해하는지 잘 모르겠습니다. 슈퍼를 부르지 않는 것이 개인적인 욕구일까요? 창조()? – spatulamania
그것은 개인적인 것이 아니며 요구 사항입니다. 위의 질문에서 설명한 것처럼 클래스는 Activity가 아닌 NativeActivity를 확장합니다. 나는 NativeActivity.onCreate를 호출하는 것을 피하고자한다. 왜냐하면 NativyActivity.onCreate에서 내용보기를 설정하기 때문에 (나는 super.onCreate를 호출하면 일어날 것이다) (나는 그것을하고 싶지 않다). – paulscode