Android 在MainActivity中从jar调用函数
我第一次尝试创建自己的.jar文件。它是有效的,但现在我想给主要活动提供反馈。所以我想在main活动中调用函数“receiveSerial” 因此,当包含my.jar时,main活动必须始终实现函数“receiveSerial” .jar文件是代码的一部分: 主要活动 注意:我不会发布整个代码,因为代码现在很混乱,这对可读性不好 您必须强制转换,因为receiveSerialString不是Activity的方法,而是MainActivity。我将使用MainActivity应该实现的sendSerial方法创建一个接口,并将该接口的引用保存在Blauwe类中,而不是一个Activity实例。<1创建接口 2在MainActivity中添加接口实现 3更新Blauwe类 4在MainActivity中将inteface回调对象设置为Blauwe类Android 在MainActivity中从jar调用函数,android,jar,Android,Jar,我第一次尝试创建自己的.jar文件。它是有效的,但现在我想给主要活动提供反馈。所以我想在main活动中调用函数“receiveSerial” 因此,当包含my.jar时,main活动必须始终实现函数“receiveSerial” .jar文件是代码的一部分: 主要活动 注意:我不会发布整个代码,因为代码现在很混乱,这对可读性不好 您必须强制转换,因为receiveSerialString不是Activity的方法,而是MainActivity。我将使用MainActivity应该实现的sendS
为此,您必须在jar中创建接口/提取类,然后在主活动中提取或实现它。否则,在jar中创建该类的实例,并使用实例获取方法。是的,完美的解释。工作完美!
package com.hoeks.ma.bluetooth;
import java.util.Set;
import ...
public class Blauwe{
..
private Activity ma;
public Blauwe(Activity m){
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
ma = (Activity)m;
}
..
public void sendSerial(String s) {
ma.receiveSerial(s); // This line give Eclipse error "Add cast to ma"
// When I add the cast it is not working
}
import com.hoeks.ma.bluetooth.Blauwe;
....
public void receiveSerial(String s) {
javascr.setSerial(s);
}
public interface ReceiveSerialCallback{
public void receiveSerial(String s);
}
public class MainActivity implements ReceiveSerialCallback{
...
public void receiveSerial(String s) {
// serial received
}
}
private ReceiveSerialCallback callback;
...
public void setReceiveSerialCallback(ReceiveSerialCallback callback) {
this.callback = callback;
}
...
public void sendSerial(String s) {
callback.receiveSerial(s);
}
Blauwe b = new Blauwe();
b.setReceiveSerialCallback(this);