1

我正在为 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指向插件资源,而不是应用程序资源。

问候

4

1 回答 1

4

好的,我找到了解决方案。我从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);
    }
于 2019-05-30T14:51:12.080 回答