小编Dmi*_*try的帖子

从非活动单例类中获取应用程序上下文

在我的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的新手,我对在活动中传递数据的方式有点困惑.

我将不胜感激任何帮助.

java singleton android android-context baseadapter

35
推荐指数
2
解决办法
5万
查看次数

是否有任何指南在react-native中实现JavaScriptModule?

有兴趣在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模块.

android react-native

7
推荐指数
1
解决办法
1200
查看次数