Загрузка методов получения данных — неясно при использовании

#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 ? Это часть вашей деятельности, поэтому вам это не нужно.