在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"

Android Jetpack应指南学习笔记8——Navigation(二)使用safe args传递参数_第1张图片

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

apply plugin: 'androidx.navigation.safeargs'

Android Jetpack应指南学习笔记8——Navigation(二)使用safe args传递参数_第2张图片

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

Android Jetpack应指南学习笔记8——Navigation(二)使用safe args传递参数_第3张图片

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

Android Jetpack应指南学习笔记8——Navigation(二)使用safe args传递参数_第4张图片

 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.效果图:

Android Jetpack应指南学习笔记8——Navigation(二)使用safe args传递参数_第5张图片

Android Jetpack应指南学习笔记8——Navigation(二)使用safe args传递参数_第6张图片

更多相关文章

  1. Android:使用ViewPager实现左右滑动切换图片 (简单版)
  2. Android各分辨率定义的图片规格
  3. (4.1.10) ImageView图片自适应
  4. 修改Android开机图片、动画、声音
  5. android 使用Activity类布局时怎样让图片居中
  6. android上传图片和参数(属性)到服务器

随机推荐

  1. MySQL INT类型全解析
  2. 详解MySQL 外键约束
  3. MySQL数据库使用规范总结
  4. MySQL 常用函数总结
  5. 如何选择合适的MySQL日期时间类型来存储
  6. mysql 时间戳的用法
  7. 详细分析mysql MDL元数据锁
  8. MySQL OOM(内存溢出)的解决思路
  9. MySQL MGR 有哪些优点
  10. mysql数据库中字符集乱码问题原因及解决