Всем доброго времени суток! И так. У меня есть
ListView с множеством итемов, по нажатию определенного я подгружаю определенный html файл из папки
raw. Но сейчас я имею необходимость переместить все файлы из папки raw в папку
assets, но не знаю, что мне нужно поменять в коде для правильного чтения из папки
assets (чтения (не открытия) именно всех файлов для последующего открытия нужного), исходя из моего кода. Код:
В методе onCreate
webView = (WebView) findViewById(R.id.webView);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
Intent intent = getIntent();
//получаем строку и формируем имя ресурса
String resName = "file:///android_asset/" + "file" + intent.getIntExtra("head", 0);
Log.i("name", resName);
Context context = getBaseContext(); //получаем контекст
//читаем текстовый файл из ресурсов по имени
String text = readRawTextFile(context, getResources().getIdentifier(resName, "raw", "my_package_name"));
webView.loadDataWithBaseURL("file:///android_asset/", text, "text/html", "utf-8", null);
}
Код чтения из raw-ресурсов:
public static String readRawTextFile(Context context, int resId)
{
InputStream inputStream = context.getResources().openRawResource(resId);
InputStreamReader inputReader = new InputStreamReader(inputStream);
BufferedReader buffReader = new BufferedReader(inputReader);
String line;
StringBuilder builder = new StringBuilder();
try {
while (( line = buffReader.readLine()) != null) {
builder.append(line);
builder.append("\n");
}
} catch (IOException e) {
return null;
}
return builder.toString();
}
Пробовал множество методов чтения файлов, предложенных ресурсами интернета и, в частности, на англоязычных вопросах
stackoverflow. На каждый метод находился по одной-две ошибки, а половина мне и вовсе не подошла, так как там был метод для чтения и открытия уже одного файла, когда мне нужно чтение
всех файлов, почти тоже самое, что у меня сейчас, но из папки
assets.