android - Fragment中的WebView如何監(jiān)聽其返回監(jiān)聽事件?
問題描述
我在Fragment的布局中放置了一個(gè)WebView,想監(jiān)聽WebView的返回鍵,該如何實(shí)現(xiàn)?
@Override public void onActivityCreated(@Nullable Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);getView().setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) {if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) { webview.goBack(); return true;}return false; }}); }
這樣監(jiān)聽沒用
問題解答
回答1:Fragment 本身是沒有 Activity#onBackPressed() 這樣的接口的, 所以需要 Activity 主動(dòng)通知 Fragment :
public class ActivityA extends Activity { ... ...@Override public void onBackPressed() {FragmentA fragment = findFragmentA();if (fragment.onBackPressed()) { return ;}super.onBackPressed(); }}public class FragmentA extends Fragment { public boolean onBackPressed() {if (webview.canGoBack()) { webview.goBack(); return true;}return false; }}
相關(guān)文章:
1. [python2]local variable referenced before assignment問題2. Python2中code.co_kwonlyargcount的等效寫法3. python中怎么對列表以區(qū)間進(jìn)行統(tǒng)計(jì)?4. javascript - 我的站點(diǎn)貌似被別人克隆了, google 搜索特定文章,除了域名不一樣,其他的都一樣,如何解決?5. mysql - 請問數(shù)據(jù)庫字段為年月日,傳進(jìn)的參數(shù)為月,怎么查詢那個(gè)月所對應(yīng)的數(shù)據(jù)6. python - 如何判斷字符串為企業(yè)注冊名稱7. javascript - vue+iview upload傳參失敗 跨域問題后臺(tái)已經(jīng)解決 仍然報(bào)403,這是怎么回事啊?8. php - 微信開發(fā)驗(yàn)證服務(wù)器有效性9. html - 移動(dòng)端radio無法選中10. 求救一下,用新版的phpstudy,數(shù)據(jù)庫過段時(shí)間會(huì)消失是什么情況?
