经过长时间的搜索,我找不到任何合适的解决方案。我有一个 Android 库项目,其中包含几乎所有应用程序代码。从库项目的主要活动中,我启动了一个明确的活动 A 的意图。在使用库项目的派生项目中,我扩展了这个活动 A 并添加了一些新代码。问题是 Activity A 的超类将响应而不是派生类。
在使用库项目的新项目清单中,我已经用新包声明了新活动。
这是图书馆项目的 Intent 调用:
Intent i = new Intent(getApplicationContext(), AndroidActivity.class);
startActivity(i);
这是派生的 AndroidActivity 类:
public class AndroidActivity extends de.app.library.activities.AndroidActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
我无法使用 onCreate 方法
图书馆项目清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="de.app.library"
android:versionName="1.0"
android:versionCode="1">
<uses-sdk android:minSdkVersion="4" />
<application
android:icon="@drawable/icon"
android:label="@string/app_name">
<activity android:name=".activities.MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".activities.AndroidActivity" android:label="@string/act_android" />
</application>
这里是新项目的清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="de.app.free"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="4" />
<application
android:icon="@drawable/icon"
android:label="@string/app_name">
<activity android:name="de.app.library.activities.MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".activities.LernenActivity" android:label="@string/act_lernen" />
所以我有:
de.app.library.activities.AndroidActivity and
de.app.free.activities.AndroidActivity
我不想对库项目做太多更改,因为第三个项目应该使用现有代码和未触及的 AndroidActivity
所有其他事情对我来说都很好。例如,从新项目中使用更改的布局。
我该如何处理这个问题?也许我声明的新项目中的清单发生了变化,应该调用新活动而不是超类?
提前致谢!