我正在为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
指向插件资源,而不是应用程序资源。
致谢
答案 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);
}