Android Fragment跳转到Activity的方法

这篇具有很好参考价值的文章主要介绍了Android Fragment跳转到Activity的方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一开始我直接按照Activity页面之间跳转的方法进行的跳转,就是在xml文件中给相应的组件onClick

android:onClick="to_search"

在网上查询到的好像都是下面这种

Intent intent = new Intent(getActivity(),SearchActivity.class);
startActivity(intent);

但是我在Fragment的Java文件中用到这个并不能实现预想的效果。

在多次尝试后我直接在Fragment所嵌入的Activity的Java文件中添加了以下代码,实现了跳转的效果。


//跳转到搜索的页面
    public void to_search(View view) {
        Intent intent = new Intent(FragmentActivity.this,SearchActivity.class);
        startActivity(intent);
        System.out.println("发生了跳转");
    }

虽然不是很懂原理,但是这个是实现了效果的。但是这个好像不是很合理,这就是一个简单的Activity之间的跳转。

后面发现在Fragment页面由点击事件时不能像在Activity页面一样,直接写方法。如下,是错误的形式,不能实现效果。


    public void to_search(View view) {
        Intent intent = new Intent(getActivity(),SearchActivity.class);
        startActivity(intent);
    }

在Fragment中如果有点击事件应如下:

首先在xml中不需要有onClick方法,只需要定义id就可以了如下:

<ImageView
            android:id="@+id/search_icon"
            android:layout_width="0dp"
            android:layout_height="30dp"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="5dp"
            android:layout_weight="1"
            android:src="@drawable/search"/>

然后在相应的Fragment的java文件中如下操作。

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
//        这里默认的是return inflater.inflate(R.layout.fragment_index, container, false);
//        因为后面的监听中有view 先不return,先定义一个
        final View view = inflater.inflate(R.layout.fragment_index, container, false);
//        组件绑定 通过id 为了方便就直接用一样的id
        ImageView search_icon = view.findViewById(R.id.search_icon);
        //设置点击事件
        search_icon.setOnClickListener(new View.OnClickListener() {
            //跳转到搜索的页面  这里需要注意不需要像Activity之间跳转的那样,自己定义方法名,之间onClick就可以了
            @Override
            public void onClick(View view) {
                //到这里使用网上搜到的就可以了正常实现了。
                Intent intent = new Intent(getActivity(),SearchActivity.class);
                startActivity(intent);
                System.out.println("跳转到搜索页面");
            }
        });
        //这里要注意return view;不能缺少
        return view;
    }

总结:网上查询到的跳转代码没有错误,但是不够全面,容易造成误解。

正确的方法应该是在Frangment的onCreateView中绑定组件,再给组件添加相应事件,实现效果。文章来源地址https://www.toymoban.com/news/detail-425256.html

到了这里,关于Android Fragment跳转到Activity的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android之Fragment 跳转返回重复加载重复执行onCreateView的四种解决方法

    前言:  Fragment 跳转返回重复加载重复执行 onCreateView 的问题通常是因为 Fragment 生命周期方法的调用顺序和使用不当所导致的。 1,onSaveInstanceState()方法 一种解决方法是在 Fragment 中使用 onSaveInstanceState() 方法保存 Fragment 的状态,并在 onCreate() 方法中进行状态恢复,避免重复执

    2024年02月06日
    浏览(40)
  • Android adb命令获取当前Activity或者Fragment

    用adb命令查看下面Demo处于 NO.3 Fragment 时的 Activity 和 Fragment 信息。 输出结果如下: 上面的 com.example.who/com.example.who.ui.activity.SecondActivity} 可以分成两部分看: / 前的部分是包名, / 后的部分是当前 Activity 的类全名。 该命令会输出堆栈中全部的窗口信息。 输出结果如下, Se

    2024年02月15日
    浏览(48)
  • 【Android】怎么使用一个ViewModel用在多个Activity或者Fragment中

    项目需求 在多个Activity或者Fragment中使用同一个ViewModel 需求实现 1.使用ActivityScope或FragmentScope 想在一个Activity或Fragment中共享ViewModel实例,可以使用ActivityScope或FragmentScope。这两种范围会根据它们所绑定的Activity或Fragment自动管理ViewModel实例的生命周期。 例如,创建一个继承自

    2024年02月15日
    浏览(32)
  • idea中mapper直接跳转到xml的插件

    一.点击File | Settings | Plugins,下载插件 二、重启idea

    2024年02月09日
    浏览(24)
  • Android——跳转到小程序

    1.接入第三方时,一定要先看官方文档,防止出错 微信开放文档 这个是从Android跳转到微信小程序的官方文档说明,是比较简单的 这里主要说明一下appId,这个是移动应用的appId,不是小程序的appId,文档说得很清楚 移动应用的appId,需要去微信开放平台去注册获取:  微信开放

    2024年02月15日
    浏览(27)
  • Android跳转到QQ加群、聊天页面

    1.跳转到QQ聊天页面(单聊) 2.跳转到QQ群页面 在跳转到QQ群页面前,需要先获取要跳转到QQ群的Key,获取Key的网址:https://qun.qq.com/join.html 电脑 加群的 链接, 是 扫描 群的 二维码 图片 可以 得到 点击, 手机里打不开

    2024年02月04日
    浏览(34)
  • Android Studio中如何在Activity跳转之间传递数据

    使用Intent操作可以完成两个Activity之间的跳转,有时候也相应的需要在两个跳转活动之间传递数据,这篇就详细的介绍一些在Android开发中一些基础的活动跳转时传递数据的方法 调用PutExtra()方法 由于Activity之间的数据传递有许多不同种类型,所以在Inten类中提供了多个重载的

    2023年04月08日
    浏览(65)
  • Android从一个APP跳转到另外一个APP

    启动另外一个目标APP(非覆盖原来APP的方式) 1、当前APP加入获取权限声明:(不加入权限检查,没法启动目标app) 2、执行跳转代码: 1、目标APP的对应Activity中加入action 2、当前应用执行跳转到目标APP * Intent跳转时捕获一下异常(略),防止目标对象不存在引起崩溃。

    2024年02月04日
    浏览(27)
  • Android从一个App界面跳转到另一个App界面

    Android从一个App界面跳转到另一个App界面 首先,将需要的要跳转的App的activity暴露出来 需要注意的是,如果不暴露,就会报错 然后在需要进行跳转的地方写如下代码 显示启动 1 常见 2 通过Intent的ComponentName: 3 初始化Intent时指定包名: 隐式启动 通过Intent-filter的Action,Category或

    2024年02月16日
    浏览(34)
  • Android与H5交互 -- 点击H5跳转到 Android原生 页面 ,webview与h5(js)交互

    Android与H5交互 app开发过程中,利用原生+h5模式来开发是比较常见的 下面案例演示的是:原生调起一个H5页面,然后H5点击跳转到原生 WebViewActivity页面 调用H5 ,点击H5链接 跳转到原生MainActivity页面 注意 别忘了 !-- 添加网络权限 -- 一、清单文件,增加的配置 data的数据就是H5

    2023年04月14日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包