在我的android项目中,我有ImageAdapter类,我在其中传递应用程序上下文以满足其他需求.
public class ImageAdapter extends BaseAdapter {
private Context c;
public ImageAdapter(Context c) {
this.c = c;
}
...
}
Run Code Online (Sandbox Code Playgroud)
问题是我想让ImageAdapter成为一个单例,以便从我的所有活动中轻松访问这个类的实例.但是我不知道如何将getApplicationContext()方法中的app context从我的一个活动传递给ImageAdapter.所以有没有"神奇"做到这一点如下?
public class ImageAdapter extends BaseAdapter {
private Context c;
private static class Holder {
public static final ImageAdapter IA = new ImageAdapter();
}
private ImageAdapter() {
this.c = /* some magic here */.getApplicationContext();
}
public static ImageAdapter getInstance() {
return Holder.IA;
}
...
}
Run Code Online (Sandbox Code Playgroud)
也许你有一些其他的想法,可以为我的任何活动分享ImageAdapter.我是android的新手,我对在活动中传递数据的方式有点困惑.
我将不胜感激任何帮助.
有兴趣在react-native 中实现直接本机到javascript调用.但没有找到任何指南.
请帮助一些在本机中创建和注册本机到javascript模块的示例.
已经发现来自官方原生模块android文档的代码有一个名为createJSModules的方法,它返回一个JavaScriptModule类列表.
class AnExampleReactPackage implements ReactPackage {
@Override
public List<Class<? extends JavaScriptModule>> createJSModules() {
return Collections.emptyList();
}
...
}
Run Code Online (Sandbox Code Playgroud)
com.facebook.react.bridge.JavaScriptModule的 Javadoc 说:
/**
* Interface denoting that a class is the interface to a module with the same name in JS. Calling
* functions on this interface will result in corresponding methods in JS being called.
* ...
*/
@DoNotStrip
public interface JavaScriptModule {
}
Run Code Online (Sandbox Code Playgroud)
我能够创建接口并将其传递给createJSModules类,但不知道如何从js代码注册适当的javascript模块.