如何在Android中从外部库调用Activity方法

rez*_*eza 0 android call android-activity

在我的主要活动中,我有一个方法需要从辅助java类调用.我使用了辅助java类的构造函数来接收对主Activity的引用.然后我尝试使用此引用从辅助java类的主体调用该方法.但java不通过传递引用识别该方法?

我的主要活动如下:

public class MainActivity extends Activity{

    public void onCreate(){

        TestClass mTestClass = new TestClass(this);
    }

   public testMethod(){      
       // do some work here
   }
}
Run Code Online (Sandbox Code Playgroud)

现在,在我的TestClass.java中,我收到了对MainActivity的引用:

public class TestClass{

    public TestClass(Activity mActivity){
        //Android/Java doesn't recoginze testMethod here???? 
        mActivity.testMethod();      
    }
}
Run Code Online (Sandbox Code Playgroud)

我一直试图解决这个问题几天没有成功.我迫切需要你的帮助,并感谢任何建议!

PS TestClass将充当一个库,每个人都可以从他们的Android应用程序中调用它.换句话说,我提供TestClass作为库.然后,用户实现在满足某些条件时将执行的方法的内容.因此,我需要通过用户传递给我的库类的引用来调用该特定方法(将由用户在自己的Activity中定义).

Jul*_*rgé 7

在您的申请中:

public class MainActivity extends Activity implements Testeable {

    public void onCreate(){

        TestClass mTestClass = new TestClass(this);
    }

   public testMethod(){      
       // do some work here
   }
}
Run Code Online (Sandbox Code Playgroud)

在你的图书馆:

public interface Testeable {
   public void testMethod();
}


public class TestClass{

    public TestClass(Testeable mActivity){
        //Android/Java doesn't recoginze testMethod here???? 
        mActivity.testMethod();      
    }
}
Run Code Online (Sandbox Code Playgroud)