Android 为我们提供了两个比较常用的传值对象:Intent 和 Bundle ;
用途:一般情况下,我们在 Activity 中传值用 Intent ,而在 Fragment 中传值用 Bundle;
1. Intent 传值(Activity 中使用)
下面就来先看 Intent 在 Activity 中传值的示例(ActivityA 传值到 ActivityB):
ActivityA 的代码为(传了两个值,姓名和爱好):
Intent intent = new Intent(ActivityA.this,ActivityB.class);
intent.putExtra("name","张三");
intent.putExtra("like","女");
startActivity(intent);
ActivityB 的代码为(接收两个值,姓名和爱好并且打印出来):
String name = getIntent().getStringExtra("name");
String like = getIntent().getStringExtra("like");
Log.e("=====name", name);
Log.e("=====like", like);
上面就是 Intent 传值的使用,下面是打印的结果,可以看出传值成功:
2. Bundle 传值(Fragment 中使用)
下面就来先看 Bundle 在 Fragment 中传值的示例(FragmentA 传值到 FragmentB):
FragmentA 的代码为(传了两个值,姓名和爱好):
FragmentB fragment = new FragmentB();
Bundle bundle = new Bundle();
bundle.putString("name", "李四");
bundle.putString("like", "男");
fragment.setArguments(bundle);
FragmentB 的代码为(接收两个值,姓名和爱好并且打印出来):
String name = getArguments().getString("name");
String like = getArguments().getString("like");
Log.e("=====name", name);
Log.e("=====like", like);
上面就是 Bundle 传值的使用,下面是打印的结果,可以看出传值成功:
上面就是 Intent 传值和 Bundle 传值的使用