1 回答
TA贡献1836条经验 获得超3个赞
最好的方法可能是将结果和事件名称存储为 java 变量,然后您可以轻松地从其他地方访问它。
首先要做的是创建一个可从另一个类(公共)获得的 java 变量,并为其提供默认值以避免任何问题。
//Create Java variables
public static int myValueResult = 0;
public static string myValueName = "";
// Called to emit events to event listeners in JS
private void sendEvent(String eventName, int result) {
getReactApplicationContext()
//JS Method
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
.emit(eventName, result);
//Add an extra line that saves the result and eventName to the Java variables we made
myValueResult = result;
myValueName = eventName;
}
现在您可以从另一个 Java 类中获取结果,如下所示。只需替换classWithEvent为包含您的sendEvent方法的类的真实名称:
int resultFromOtherClass_result = classWithEvent.myValueResult;
string resultFromOtherClass_name = classWithEvent.myValueName;
编辑:这个事件已经在监听,所以不需要在另一个java类中监听。相反,您可以简单地调用另一个类中的方法,有点像这样,然后每当 sendEvent 发生时,您就可以在该类中对它做任何您想做的事情:
myOtherClass.doEvent(eventName, result);
添加回答
举报