#android
#Android
Вопрос:
В моей деятельности у меня есть руководство, объявленное как WebView
Затем я пытаюсь получить доступ к HTML-файлу (test.htm) из моей папки raw.
Следующая строка выдает мне ошибку в слове Utilities, в которой говорится, что «Утилиты не могут быть разрешены». Я думал, что Utilities в этом контексте было зарезервированным словом, но поскольку я получаю вышеупомянутую ошибку — я полагаю, я не понимаю, что такое «Utilities» — это должен быть файл? Предполагается ли, что он представляет мой XML-файл (например, нужен ли мне XML-файл с именем Utilities, для работы с методом getData? Или я неправильно использую метод getData?
manual.loadData(Utilities.getData(this, R.raw.test), «text/ html», «utf-8»);
Ответ №1:
Похоже, вы пытаетесь использовать статический метод getData в классе с именем Utilities, который, я не думаю, что является стандартным классом Android — возможно, вам не хватает импорта.
Я предполагаю, что, судя по тому, как вы вызываете WebView.loadData, Utilities.getData должен загружать R.raw.test в виде строки. Вам следует взглянуть на ресурсы — использование строки ресурса может быть лучше, чем необработанные данные, поскольку вы получаете бесплатную поддержку локализации. В качестве альтернативы используйте WebView.loadUrl и поместите необработанный HTML-код в ресурсы, например
//manual.loadData(Utilities.getData(this, R.raw.test),"text/html", "utf-8");
manual.loadUrl("test.htm");
Надеюсь, это поможет,
Фил Лелло
Комментарии:
1. Я предполагаю, что моя проблема с loadDataWithBaseURL заключается в том, что у меня нет URL-адреса — просто простой файл. Я хочу создать HTML-файл (простой test.htm в моей папке RAW), а затем «загрузите» этот файл в мою деятельность. Должен быть способ изменить мою строку выше, чтобы заставить это работать — нет? Вы правы в том, что Utilities не является стандартным классом — он также недоступен для импорта — мы что-то упускаем? Возможно, мне нужно что-то добавить в мой файл манифеста? Или альтернативный синтаксис для моего метода loadData?
2. Вам понадобится класс Utilities, прежде чем вы сможете его использовать. Однако, если вы переместите свой файл в ресурсы, вы можете загрузить его по URL file://android_asset/test.htm с использованием loadUrl («file://android_asset/test.htm «). Я исправлю свой первоначальный ответ — устаю!
Ответ №2:
Почему это?
manual.loadData(Utilities.getData(this, R.raw.test),"text/html", "utf-8");
В вашей деятельности есть метод под названием getData, почему бы вам просто не использовать…
manual.loadData(getData(this, R.raw.test),"text/html", "utf-8");
…? И почему у него есть параметр Context c
? Это часть вашей деятельности, поэтому вам это не нужно.