我想在另一个软件包中读取stings.xml文件。
我正在创建一个flutter程序包
我该怎么办?
flutter示例应用程序字符串xml
<string name="client_id">clientid</string>
颤振包
context.getString(R.stirng.client_id); // not found
答案 0 :(得分:0)
您将无法访问xml
软件包中的flutter
文件
您可以创建文件Strings.dart
class Strings {
static const String client_id = "xxxxxxxx";
}
并像这样使用它
Text(Strings.client_id, /*Code*/),
不要忘记使用import
Strings.dart
import '../Strings.dart';
答案 1 :(得分:0)
在xml文件中设置它之后,您可以从上下文中读取它:
将此类添加到您的插件中:
import android.content.Context
import androidx.annotation.NonNull
class PluginUtilities
{
companion object {
@JvmStatic
fun getResourceFromContext(@NonNull context: Context, resName: String): String {
val stringRes = context.resources.getIdentifier(resName, "string", context.packageName)
if (stringRes == 0) {
throw IllegalArgumentException(String.format("The 'R.string.%s' value it's not defined in your project's resources file.", resName))
}
return context.getString(stringRes)
}
}
}
然后,当您需要资源中的任何字符串时,可以调用getResourceFromContext方法,例如,我将从资源中获取access_token:
val accessToken: String = PluginUtilities.getResourceFromContext(context,"access_token")
我希望答案是有用的...