Запуск активности из Android-Library-Project

после долгих поисков я не смог найти подходящего решения. У меня есть проект Android-библиотеки почти со всем кодом для приложения. Из основного действия в проекте библиотеки я запускаю намерение для явного действия A. В моем производном проекте, который использует проект библиотеки, я расширил это действие A и добавил новый код. Проблема в том, что ответит суперкласс Activity A, а не производный класс.

В манифесте нового проекта, который использует проект библиотеки, я объявил новое Activity с новым пакетом.

Вот Вызов намерения из проекта библиотеки:

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

. Все остальное у меня отлично работает. Например, измененные макеты используются из нового проекта.

Как мне решить эту проблему? Может быть, изменения в манифесте из нового проекта, в котором я заявляю, что новое действие должно вызываться вместо суперкласса?

Заранее спасибо!

11
задан treimy 7 August 2011 в 18:08
поделиться