如何从Flutter插件访问Android资源字符串

时间:2019-05-30 13:36:46

标签: android flutter flutter-plugin

我正在为Flutter构建一个插件,我想从该插件访问Android应用程序资源字符串。

我正在尝试使用:

@Override
    public void onMethodCall(MethodCall call, Result result) {
        switch (call.method) {
            case "example":
                String value = context.getString(R.string.name);
                result.success(value);
                break;
            default:
                result.notImplemented();
                break;
        }
    }

但是R.string指向插件资源,而不是应用程序资源。

致谢

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决方案。 我从Auth0 Android repo

获得了此功能

因此基本上是为了从插件获取应用程序资源,他们使用此功能

private static String getResourceFromContext(@NonNull Context context, String resName) {
        final int stringRes = context.getResources().getIdentifier(resName, "string", context.getPackageName());
        if (stringRes == 0) {
            throw new IllegalArgumentException(String.format("The 'R.string.%s' value it's not defined in your project's resources file.", resName));
        }
        return context.getString(stringRes);
    }