在android中,未使用safe args之前,通常我们Fragment之间传递参数是这样的:

1.传递参数//未采用safe args的传递方式Bundle bundle = new Bundle();bundle.putString("user_name", "Michael");bundle.putInt("age", 30);Navigation.findNavController(v).navigate(R.id.action_mainFragment_to_secondFragment, bundle);

2.接收参数

Bundle bundle = getArguments();if(bundle != null){String userName = bundle.getString("user_name");int age = bundle.getInt("age");}3.使用safe args之前我们先要安装插件,步骤如下:3.1在Project的build.gradle目录下添加插件:classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0"

3.2 在App的build.gradle目录下引用该插件:

apply plugin: 'androidx.navigation.safeargs'

4.在导航图中添加标签。我们可以直接在Text中编写XML代码,也可以通过Design面板添加.

5.添加成功之后我们可以在app/generatedJava中看到safe args插件为我们生成的代码文件:

 6.我们使用safe args之后是这样的:
//通过safe args完成参数传递

Bundle bundle = new MainFragmentArgs.Builder().setUserName("大海").setAge(28).setGender("男").build().toBundle(); Navigation.findNavController(v).navigate(R.id.action_mainFragment_to_secondFragment, bundle);

7.接收参数:
//通过safe args完成参数接收 Bundle bundle = getArguments();

if (bundle != null) {

String userName = MainFragmentArgs.fromBundle(getArguments()).getUserName();

int age = MainFragmentArgs.fromBundle(getArguments()).getAge();

String gender = MainFragmentArgs.fromBundle(getArguments()).getGender();

}

8.效果图:

更多相关文章

  1. Android之fill_parent和wrap_content
  2. Android的事件转递机制
  3. Android(安卓)实现简单的插件化模块化.
  4. Android(安卓)动画——过渡动画中ActivityOptions介绍与使用((Tran
  5. Android中GridView组件的使用
  6. Android(安卓)事件触发机制
  7. 第一节(搭建环境)
  8. mybatisplus的坑 insert标签insert into select无参数问题的解决
  9. Python技巧匿名函数、回调函数和高阶函数

随机推荐

  1. Android中的资源与国际化
  2. 【Android-Error】Android(安卓)4.4.4 ja
  3. android手机开发(一)环境配置
  4. 转:Android中shape的使用
  5. Android自定义实现圆形播放进度条
  6. adb 无线调试
  7. Android系列开发博客资源汇总
  8. 浣跨敤 Android(安卓)瀹炵幇鑱旂綉
  9. Android框架模式之-MVP简单使用
  10. Android(安卓)Studio常用快捷键、Android