【发布时间】:2011-12-11 09:46:41
【问题描述】:
我正在尝试覆盖从 Activity 派生的类(称为 NativeActivity),以便我可以设置自己用 Java 创建的内容视图,同时保留其其余功能。我必须使用 NativeActivity,因为它是在 Xperia Play 上获取触摸板输入的唯一方法。我需要重写的方法是 NativeActivity.onCreate() 方法,因为这是设置我不想要的内容视图的地方。问题是,如果我不在重写的 onCreate() 方法中调用 super.onCreate(),则会引发 SuperNotCalledException。这来自 Activity 类。但是 Activity.onCreate() 方法所做的只是设置一个布尔值:
protected void onCreate(Bundle savedInstanceState) {
mVisibleFromClient = !mWindow
.getWindowStyle()
.getBoolean(
com.android.internal.R.styleable.Window_windowNoDisplay,
false);
mCalled = true;
}
我可以使用 Activity.getWindow() 方法在我自己的代码中进行检查。不幸的是,mCalled 布尔值是私有的,所以我不能在我自己的代码中将它设置为 true。我似乎无法弄清楚如何绕过这个要求。有什么想法吗?
【问题讨论】:
标签: android android-ndk