android - Fragment中的WebView如何監(jiān)聽其返回監(jiān)聽事件?
問題描述
我在Fragment的布局中放置了一個WebView,想監(jiān)聽WebView的返回鍵,該如何實現(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 主動通知 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. 哪位大神知道MySql怎么修改多行多列的數(shù)據(jù)?求指點2. 這是什么情況???3. 編輯管理員信息時,為什么沒有修改過的內(nèi)容會為空?4. phpadmin的數(shù)據(jù)庫,可以設(shè)置自動變化時間的變量嗎?就是不需要接收時間數(shù)據(jù),自動變化5. mysql - thinkphp5 在MAC電腦本地正常,部署LINUX服務(wù)器之后,模型不存在6. 老哥們求助啊7. mysql服務(wù)無法啟動1067錯誤,誰知道正確的解決方法?8. PHP類封裝的插入數(shù)據(jù),總是插入不成功,返回false;9. APP上傳到電腦服務(wù)器,出現(xiàn)數(shù)據(jù)上傳不完整的問題10. 求救一下,用新版的phpstudy,數(shù)據(jù)庫過段時間會消失是什么情況?
