Android Intent传值和回传值
来源:互联网 发布:淘宝自助开通账户 编辑:程序博客网 时间:2024/06/05 15:09
为了实现点击某个Actionbar弹出某个Dialog Or AnortherAvtivity进行参数设置,同时设置好的参数还可以返回当前主界面进行处理,此时会想到用Intent的传值问题。那么首先要了解Intent启动一个Activity并进行值传递的过程。之前的博客写过关于Intent启动的方法和简单的传值,这里主要说一下关于Intent传递int数据的问题,Intent传递Int数据可以通过两种方法,一种为数据转换,一般是先传一个String类型,然后String转int,这种方法实现起来在某些场合不太适用,所以有第二种方法,通过Bundle对数据进行封装,然后传递bundle即可。示例如下:
1.数据封装
Intent intent = new Intent();Bundle bundle = new Bundle();bundle.putInt("Time", 5);bundle.putInt("Counts", 16);intent.putExtras(bundle);2.数据拆包
Bundle b = getIntent().getExtras();int time = b.getInt("Time");int counts = b.getInt("Counts");这样就实现了通过Bundle封装数据来传递值。
本文主要说一下Intent中除了startActivity()方法外的另一种可以实现回传值的startActivityForResult()方法。这也就是一开始所要实现的方法,这个方法也比较简单,但是要把逻辑理清楚,即通过firstActivity启动nextActivity,然后由nextActivity进行数据处理,封装,再将值返回给firstActivity进行处理。首先,在firstActivity中启动nextActivity,并传入键值对,部分代码如下:
Intent intent = new Intent();intent.putExtra("Time", time);intent.putExtra("Counts", counts);intent.setClass(MainActivity.this, SpinnerC.class);startActivityForResult(intent, 1);//1为requestCode,传值的标志,就像一个商标,表示是这个箱子然后在nextActivity中进行数据的封装,代码如下:
Intent intent = new Intent();Bundle bundle = new Bundle();bundle.putInt("Time", SampleTimeS);bundle.putInt("Counts", SampleCountsS);intent.putExtras(bundle);setResult(2, intent);//返回值调用函数,其中2为resultCode,返回值的标志finish();//传值结束最后在firstActivity中接收返回值,此时会重写一个onActivityResult函数,专门用来接收返回值,其中第一个参数即requestCode,第二个为resultCode,最后一个为传回的intent,可以利用前两个参数来判断是否是需要的包传递回来,代码如下:
protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 1 && resultCode == 2){ Bundle b = data.getExtras(); time = b.getInt("Time"); counts = b.getInt("Counts"); } }这样就实现了数据的值回传。
0 0
- Android Intent传值和回传值
- Android Intent 和 Intent Filter
- Android--Intent和Intent Filters
- 【android】Intent 和 Intent Filter
- Android Intent和Intent filter
- Android -- Intent 和 Intent 过滤器
- Android Intent和Intent过滤器
- Intent启动activity 传值和回传值
- Android Intent传值和Bundle传值的异同
- Android Intent传值和Activity之间对象列表传递
- Android中利用Intent和Bundle传值总结
- Android Intent实现页面跳转和传值
- Android intent 传值细节
- Android intent 传值方法
- Android用Intent和Bundle传list
- Android用Intent和Bundle传list
- Android Activity和Intent
- Android--Activity和Intent
- 2017蓝桥杯模拟题
- 推荐几本学习MySQL的好书
- java向上转型实例
- 汉字转拼音 文字转语音tts(语音识别)
- java编程思想阅读笔记 第二章
- Android Intent传值和回传值
- 中国剩余定理的应用
- 20170411last
- linux基础之日志练习
- HTTPS与HTTP
- 名企笔试:2015小米暑期实习(风口的猪-中国牛市)(2017-04-09 算法爱好者)
- 认识jQuery(1)
- hadoop集群启动后datanode和namenodemanager关闭问题解决
- 跨程序共享数据——内容提供器