アクティビティから派生したクラス(NativeActivity)をオーバーライドしようとしています。そのため、Javaで作成した独自のコンテンツビューを設定し、その残りの機能をそのまま残しておきます。 Xperia Playでタッチパッド入力を取得する唯一の方法であるため、NativeActivityを使用する必要があります。私がオーバーライドする必要があるメソッドは、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
それは何も個人的ではなく、要件です。上の質問で説明したように、私のクラスはActivityではなくNativeActivityを拡張しています。私はNativeActivity.onCreate(これは私がsuper.onCreateを呼び出すと起こる)を避けるために、NativyActivity.onCreateはコンテンツビューを設定します(これはやりたくありません)。 – paulscode