У меня был внутренний класс, который я хотел вытащить в более общий класс библиотеки "Помощник".У меня была та же проблема, что и у вас.Я обошел это, сделав вспомогательный класс абстрактным, с помощью одного абстрактного метода.Затем в своем пакете проекта я расширил вспомогательный класс вызовом конструктора в определенном классе.
public class MyActivity extends Activity {
onCreate() {
MyHelperClass = new MyHelperClass(this, "foobar");
}
public void myMethod() {
// Code...
}
}
// In a different file
public class MyHelperClass extends HelperClass {
private MyActivity mInstance;
public MyHelperClass(MyActivity act, String data) {
super();
this.mInstance = act;
this.mActivity = act; // Useful for calling generic Activity methods in the HelperClass
this.mData = data;
}
protected void callMyActivityMethod() {
mInstance.myMethod();
}
}
// In a different file
public abstract class HelperClass {
protected Activity mActivity;
protected String mData;
public HelperClass() {
// Subclass will set variables
}
protected abstract void callMyActivityMethod();
// More code for all the other stuff the class does
}
Таким образом, у меня есть вспомогательный класс, который содержит подавляющее большинство «работы», иМне нужно сделать подкласс с помощью конструктора и одного метода, чтобы получить доступ к интересующему методу вызывающего действия.