我第一次尝试制作自己的.jar文件。它有效,但现在我想向MainActivity提供反馈。所以我想调用一个函数" receiveSerial()'在MainActivity中。
因此,MainActivity必须始终实现函数' receiveSerial()'当包括我的.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
}
MainActivity
import com.hoeks.ma.bluetooth.Blauwe;
....
public void receiveSerial(String s) {
javascr.setSerial(s);
}
注意:我没有发布整个代码,因为代码现在很乱,它对可读性不利。
答案 0 :(得分:0)
您必须投票,因为receiveSerial(String)
不是Activity
的方法,而是MainActivity
。我将创建一个interface
(使用方法sendSerial)MainActivity
应该实现,并在Blauwe类中保存此接口的引用,而不是Activity实例。
答案 1 :(得分:0)
1)创建interface
public interface ReceiveSerialCallback{
public void receiveSerial(String s);
}
2)在interface
MainActivity
实施
public class MainActivity implements ReceiveSerialCallback{
...
public void receiveSerial(String s) {
// serial received
}
}
3)更新Blauwe
课程
private ReceiveSerialCallback callback;
...
public void setReceiveSerialCallback(ReceiveSerialCallback callback) {
this.callback = callback;
}
...
public void sendSerial(String s) {
callback.receiveSerial(s);
}
4)将inteface
回调对象设置为Blauwe
MainActivity
类
Blauwe b = new Blauwe();
b.setReceiveSerialCallback(this);