[英]WebView in Fragment Back button kills my app when pressed
我開發了一個用於在線游戲的Wiki,並且一切都可以在我的應用程序上正常運行,但是當我按下后退按鈕應用程序被殺死時,存在一個小問題。
我的應用程序具有帶有片段的導航抽屜,當按下菜單時,它會加載一個片段,並立即顯示一個Web視圖,在Web視圖中,使用DreamWeaver生成的Jquery網頁,一切都很好,但是當用戶按BACK按鈕時,我希望片段為重新加載(返回所選菜單)
示例->打開菜單->單擊“英雄”->加載片段-> Webview加載->顯示的HTML菜單->用戶按后退按鈕->片段重新加載->加載Web視圖->加載HTML菜單。
我不知道即時通訊是否能給您一個很好的榜樣,對不起,謝謝您閱讀本文。
片段代碼:
public class HeroesFragment extends Fragment {
public HeroesFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.heroes, container, false);
WebView heroespage = (WebView) rootView.findViewById(R.id.heroeswiki);
WebSettings webSettings = heroespage.getSettings();
webSettings.setJavaScriptEnabled(true);
heroespage.loadUrl("file:///android_asset/heroes/index.html");
return rootView;
}
}
我嘗試了幾種沒有成功的解決方案,例如:
public void onBackPressed () {
if(wb != null) {
if(wb.canGoBack()) {
wb.goBack();
} else {
setContentView(R.layout.main);
wb = null;
}
} else {
super.onBackPressed();
}
}
super.onBackPressed和@Override上的此solutiongivme錯誤也給我一些錯誤。
再一次感謝你
由於您處於Fragment中,因此您不會得到OnBackPressed重寫的簡單方法是使用以下代碼
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
if(wb.canGoBack()) {
wb.goBack();
} else {
setContentView(R.layout.main);
wb = null;
}
return true;
}
}
return super.onKeyDown(keyCode, event);
}
@Bhavik,您能否在這里給出較長的答案,因為我堅持使用此方法,無法解決它。 我在setContentView和super.onKeyDown上也遇到了錯誤。同樣,我在onKeyDown上也遇到了問題,Android Studio表示不需要覆蓋?!? 我的Android Studio出了點問題或什么?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.