Android Jetpack应指南学习笔记8——Navigation(二)使用safe args传递参数
在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.效果图:
更多相关文章
- Android:使用ViewPager实现左右滑动切换图片 (简单版)
- Android各分辨率定义的图片规格
- (4.1.10) ImageView图片自适应
- 修改Android开机图片、动画、声音
- android 使用Activity类布局时怎样让图片居中
- android上传图片和参数(属性)到服务器