В проекте child/non-lib создайте новую активность y (позволяет называть его дочерней активностью), которая продолжается от действия в проекте lib (родительский). Затем переопределите метод (ы), который вы хотите изменить.
В манифесте для дочернего проекта вам нужно будет добавить дочернюю активность и (я полагаю) сделать его запуском, предоставив ему соответствующий фильтр намерений.
Если это не действие запуска, возможно, у вас также возникла проблема намерения в проекте библиотеки, пытающегося запустить стандартную (не переопределенную) версию Activity. Я преодолел это, прежде чем использовать своего рода «динамическую» систему намерений, в которой вместо жесткого кодирования типа класса для намерения я получаю его из объекта Application, который возвращает тип.
например
В библиотеке проекта:
public class MainActivity extends Activity {
private void launchOverideableActivity(){
MyApp app = (MyApp) getApplication();
Intent i = new Intent(this, app.getIntentClassType());
startActivity(i);
}}
и переопределить объект приложения, так что вы можете поставить этот динамический тип класса:
public class MyApp extends Application {
public Class getIntentClassType(){
return MainActivity.class;
}}
Затем в детском проекте, расширить деятельность и выполняйте свою работу. Но также переопределить объект приложения из библиотеки проекта и переопределить метод, но вернуть изменённый тип класса активности:
public class OveriddenApp extends MyApp {
@Override
public Class getIntentClassType() {
return MyOveriddenActivity.class;
}}
расширение деятельность из библиотеки проекта, как это немного неуклюжее, но в долгосрочной перспективе она позволяет более четкий код разделение, поэтому эта небольшая часть накладных расходов на кодирование стоит того, на мой взгляд.
Я хотел бы знать, если есть более элегантный способ сделать это ...
Хм. Это звучит как довольно жизнеспособный обходной путь. Мне нравится идея, однако я пока не буду отмечать ее как ответ, так как это скорее обходной путь, чем ответ. – user1810737
Несомненно, я столкнулся с определенными проблемами (проект библиотеки не знает о расширенной деятельности ... так как вы его запускаете и т. Д.) - он просто очень запутан и запутан. Теперь я делаю все так, кажется мне чище. –