`

Fragment或WebView里监听返回键

 
阅读更多

思路主要是在onResume事件里处理按钮事件并进行判断。

如果使用了WebView则在onKey里处理返回按钮事件。

 

代码如下:

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.widget.RadioButton;

/**
 * Created by Administrator on 2015/4/10.
 */
public class PostFragment extends Fragment{
    View rootView = null;
    WebView webViewForPost = null;
    //RadioButton radioButtonToPostList = null;

    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        rootView = inflater.inflate(R.layout.post_layout, container, false);
        webViewForPost = (WebView) rootView.findViewById(R.id.webViewForPost);
        int index = Integer.valueOf(getArguments().get("index").toString());
        String strategy = "strategy"+(index+1)+".html";
        webViewForPost.loadUrl("file:///android_asset/"+strategy);

        webViewForPost.setOnKeyListener(new View.OnKeyListener() {

            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                if (event.getAction() == KeyEvent.ACTION_DOWN) {
                    if (keyCode == KeyEvent.KEYCODE_BACK ) {
                       //这里处理返回键事件
                    }
                }
                return false;
            }
        });
        return rootView;
    }


    @Override
    public void onResume() {
        super.onResume();
        getView().setFocusableInTouchMode(true);
        getView().requestFocus();
        getView().setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {

                if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK){
                    //这里处理返回事件
                }
                return false;
            }
        });
    }

}

 

分享到:
评论

相关推荐

    多个Frament内嵌套WebView以及返回键监听(附带底部Menu的SelectUI变化)

    通过合理使用`WebView`和`Fragment`,开发者可以实现类似淘宝等电商平台的复杂交互,而返回键监听和底部菜单的SelectUI变化则是提升用户体验的关键部分。对于想要学习Android开发或者想要构建类似功能的开发者来说,...

    动态加载Fragment实例源码

    同时,你可能还需要使用`addToBackStack()` 方法将当前的事务添加到回退栈,这样用户可以通过点击设备的返回键返回到先前的Fragment。 5. **监听Fragment状态** 为了在Activity中监听Fragment的状态变化,如创建、...

    Android应用源码之ViewPager+Fragment侧滑选项卡,浏览器控件,两次退出.zip

    在本应用中,可能会有一个或多个Fragment用到了WebView,以提供浏览网页的功能。开发者可以通过设置WebView的URL来加载特定网页,并且可以利用WebView提供的方法,如`loadUrl()`、`goBack()`等进行交互控制。 关于...

    仿微信进度条webView

    8. **用户交互**:可以设置返回键关闭WebView,或监听页面内的链接点击事件,决定是否在内部打开还是跳转到外部浏览器。 9. **内存管理**:注意及时释放WebView资源,防止内存泄漏。在Activity的`onDestroy()`或`...

    android使用webview加载网页

    然后在对应的Activity或Fragment中找到这个WebView,并初始化它,设置WebViewClient和WebChromeClient,以便处理网页加载和交互: ```java WebView webView = findViewById(R.id.webView); webView....

    Android 中ViewPager中使用WebView的注意事项

    6. **禁止回退**:如果不想让用户通过按返回键离开应用,可以重写`onBackPressed()`方法,并在其中处理WebView的回退逻辑。 7. **安全考虑**:对于加载的网页内容,应确保来源的安全性,避免XSS攻击等安全问题。 ...

    android 左右滑动界面ViewPage

    【Android 左右滑动界面...5. 实现`onBackPressed()` 方法以屏蔽返回键(非必须,根据需求调整)。 通过这样的实现,用户可以在应用中流畅地左右滑动查看多个`WebView` 页面,提供了一种良好的WAP网页浏览体验。

    View_WebView:在 Android 中使用视图 WebView

    7. **用户交互**:`WebView`还可以监听用户点击返回键,决定是否关闭网页或退出应用。 ```java @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_...

    安卓Android源码——ViewPager+Fragment侧滑选项卡,浏览器控件,两次退出.zip

    当用户连续两次按下返回键时,应用会弹出提示确认是否退出,增加了用户体验的安全性。在Android中,可以通过监听并处理Back键事件来实现这一功能。 在【描述】中提到的"安卓Android源码"可能包含了实现上述功能的...

    Android ViewPager+Fragment侧滑选项卡,浏览器控件,两次退出-IT计算机-毕业设计.zip

    通过适配器(如`FragmentPagerAdapter`或`FragmentStatePagerAdapter`),ViewPager可以与多个Fragment协同工作,每个Fragment代表一个单独的页面。在这个项目中,ViewPager结合Fragment被用来创建一个可滑动的选项...

    安卓Android源码——ViewPager+Fragment侧滑选项卡,浏览器控件,两次退出.rar

    最后,"两次退出"指的是一个常见的Android应用设计模式,即连续点击两次返回键才会退出应用,这通常用于防止意外退出,提供更好的用户体验。 【描述分析】 描述虽然简洁,但暗示了这个压缩包可能包含了一个完整的...

    onBackPressed的用法

    例如,如果你在Activity中嵌入了一个Fragment,而这个Fragment又有一个内部的导航结构,你可以监听返回键事件并在`onBackPressed()`中处理相应的回退操作: ```java @Override public void onBackPressed() { if ...

    WebViewDemo

    3. **初始化WebView**:在Activity或Fragment的Java或Kotlin代码中,我们找到对应的WebView并进行初始化,设置其属性,如加载网页: ```java WebView webView = findViewById(R.id.webView); webView.getSettings...

    Android用户界面之重写onKeyDown方法源码.zip

    当你在自定义的`Activity`或`Fragment`中重写`onKeyDown`,可以监听特定的按键,例如: ```java @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { /...

    【国开搜题】国家开放大学 一网一平台 Android核心开发技术15 期末考试押题试卷.docx

    当Activity不再需要显示或需要返回到上一个Activity时,可以调用此方法。这会将Activity从Activity栈中移除,并触发一系列生命周期回调方法,如`onPause()`、`onStop()`和`onDestroy()`。 #### 3. **Android平台...

    android知识点整理

    - 懒加载是指仅当Fragment可见时才加载数据或执行相关操作。 - 视图重叠可以通过设置适当的布局层级和尺寸来解决。 - 数据传递可以通过Intent、Bundle等方式实现。 2. **ListView的优化** - 使用ViewHolder模式...

Global site tag (gtag.js) - Google Analytics