#android #dart #flutter
#Android #dart #flutter
Вопрос:
Я хочу прочитать stings.xml файл в другом пакете.
Я создаю пакет flutter
Что мне делать?
пример приложения flutter string xml
<string name="client_id">clientid</string>
пакет flutter
context.getString(R.stirng.client_id); // not found
Ответ №1:
Вы можете прочитать его из контекста после установки в 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")
Я надеюсь, что ответ полезен…
Ответ №2:
Вы не сможете получить доступ xml
к файлу в flutter
пакете
Вы можете создать файл Strings.dart
class Strings {
static const String client_id = "xxxxxxxx";
}
И используйте это так
Text(Strings.client_id, /*Code*/),
Не забудьте import
Strings.dart
import '../Strings.dart';