利用intent在活动和碎片与活动之间传递数据是比较简单的,intent方法提供了许多putExtra方法的重载可供我们的各种需求。intent可以把一些数据暂存,当跳转到另一个页面之后数据也会随着跳转到相应的页面,这样就可以在之后的页面对数据进行处理.我所了解的有传递方法有(当然其他的实现方法还有很多,我会继续努力探索更多的实现方法分享给大家)
第一种:活动之间数据的传递(FiratActivity传递数据到SecondActivity)
首先在FirstActivity里的设置:
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
intent.setAction("action");
intent.putExtra("String", "Hello world!");
startActivity(intent);
然后就是SecondActivity 里面的代码:
Intent intent = getIntent();
if("action".equals(intent.getAction())) {
String data = intent.getStringExtra("String");
Log.w("hello", data);
}
注:Log.w();方法可以在控制台打印日志来印证数据是否传送成功。
第二种:碎片传递数据到活动(碎片传递数据到SecondActivity)
碎片中的设置:
Intent intent = new Intent(getActivity(),secondActivity.class);
intent.setAction("action");
intent.putExtra("String", "Hello world!");
getActivity().startActivity(intent);
SecondActivity中的设置:
Intent intent = getIntent();
if("action".equals(intent.getAction())) {
String data = intent.getStringExtra("String");
Log.w("hello", data);
}
第三种:活动传递数据到碎片
活动中的设置:(对碎片进行实例化然后使用bundle进行传递数据)
MyFragment fragment=new MyFragment();
Bundle bundle=new Bundle();
bundle.putString("msg", "hello");
fragment.setArguments(bundle);
碎片中的设置:
Bundle bundle= MyFragment.this.getArguments();
bundle.getString("msg");