Ваша проблема в том, что переменная-член класса wWebView
не инициализирована, поэтому имеет значение null. увидеть эту часть вашего кода:
WebView wWebView = (WebView) findViewById(R.id.webview);
Отлично, вы инициализируете, но не то, что думаете: вы объявляете локальную переменную для метода и инициализируете ее. Однако вы скрываете члена класса wWebView
из-за локальной переменной с тем же именем. Таким образом, вы не инициализируете члена класса, он является нулевым, и вы получаете свой NPE. Измените вышеприведенную строку на (обратите внимание на отсутствие типа):
wWebView = (WebView) findViewById(R.id.webview);
РЕДАКТИРОВАТЬ Мне никогда не удавалось заставить ваш способ навигации между страницами работать. Однако я внес некоторые изменения в ваш метод onCreate
, и теперь все выглядит нормально на моем устройстве:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
TextView title = (TextView) findViewById(R.id.app_name);
title.setText(getString(R.string.app_name));
Button backButton = (Button) findViewById(R.id.button_back);
backButton.setOnClickListener(this);
Button infoButton = (Button) findViewById(R.id.button_info);
infoButton.setOnClickListener(this);
Bundle bundle = getIntent().getExtras();
String htmlFileName = "m" + bundle.getString("defStrID") + ".html";
String LINK_TO_ASSETS = "file:///android_asset/";
wWebView = (WebView) findViewById(R.id.webview);
wWebView.getSettings().setJavaScriptEnabled(true);
wWebView.loadURL(LINK_TO_ASSETS + htmlFileName);
}
Теперь вам нужно изменить также содержимое загружаемых вами htmls. Прежде всего добавьте <html><body>
в начале каждого файла в ресурсах и </body></html>
в конце. Во-вторых, теперь вам нужно будет изменить ссылки. Например, ссылка, которую вы включили в свой вопрос:
<a href="second.html">Second file</a>
Как видите, теперь они становятся относительными связями. Все эти изменения могут сделать ваш readAssetTextFile
бесполезным, но я считаю, что этот код легче понять.