android新窗口以及传值
1,新建一个activity,如Activity2,在清单文件AndroidManifest.xml 中 application节点中 增加一个新窗体:
.................
</activity>
<activity android:name=".ortherActivity" android:label="新窗口"/>
</application>
2,在主程序中:
Intent intent = new Intent(MainActivity.this, Activity2.class);
//打开新窗口。参数:主窗口,被调用窗口
Bundle bundle = new Bundle();//通过Bundle实现数据的传递:
bundle.putString("key1", "value1");// key1为名,value1为值
bundle.putString("key2", "value2");
bundle.putInt("keyInt1", 100);
intent.putExtras(bundle); // 传数据
如果不需要子窗口回传数据:
startActivity(intent);
如果需要子窗口回传数据:
(1),startActivityForResult(intent, requestCode);
此处要注意,requestCode是子窗口的id标志,而且必须大于1,否则回调函数onActivityResult不响应!
(2),实现回调函数onActivityResult:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
.....
}
主窗只有一个回调函数,如果调用了几个子窗口,就需通过requestCode来区分。而resultCode则是子窗口的返回值,可以用于后续的判断。
3,在新窗口中仍然使用Bundle取得数据:
Bundle bundle = this.getIntent().getExtras();
String s1 = bundle.getString("key1");
String s2 = bundle.getString("key2");
int i=bundle.getInt("keyInt1");
4,如何返回到主窗口?
Intent intent=new Intent();
Bundle bunle=new Bundle();
bunle.putString("key1", "这是子窗口的返回数据.");
intent.putExtras(bunle);
//SubActivity.this.setResult(RESULT_OK, intent);
//SubActivity.this.finish();
setResult(RESULT_OK, intent); //设置返回结果
finish(); //关闭子窗口,否则数据无法返回
5,参考
http://blog.sina.com.cn/s/blog_63d409eb01017dnn.html
转自:http://blog.sina.com.cn/s/blog_3ecf39a70101axmo.html
android新窗口以及传值的更多相关文章
- android安卓开发基础小笔记,添加按钮事件,打开新窗体,窗体传值,回传
给一个按钮添加onclick事件 //获取按钮对象 Button Aiyo = (Button)findViewById(R.id.button1); Aiyo.setOnClickListener( ...
- android 打开新窗口
ImageView loginBtn = (ImageView)findViewById(R.id.login_button); loginBtn.setOnClickListener(new Vie ...
- Android 之窗口小部件详解(三) 部分转载
原文地址:http://blog.csdn.net/iefreer/article/details/4626274. (一) 应用程序窗口小部件App Widgets 应用程序窗口小部件(Widget ...
- Android进阶之光-第1章-Android新特性-读书笔记
第 1 章 Android 新特性 1.1 Android 5.0 新特性 1.1.1 Android 5.0 主要新特性 1. 全新的 Material Design 新风格 Material De ...
- Android 的窗口管理系统 (View, Canvas, WindowManager)
http://blog.csdn.net/ritterliu/article/details/39295271 From漫天尘沙 在图解Android - Zygote 和 System Server ...
- JS判断鼠标进入容器方向的方法和分析window.open新窗口被拦截的问题
1.鼠标进入容器方向的判定 判断鼠标从哪个方向进入元素容器是一个经常碰到的问题,如何来判断呢?首先想到的是:获取鼠标的位置,然后经过一大堆的if..else逻辑来确定.这样的做法比较繁琐,下面介绍两种 ...
- html drag api 在firefox 下 拖动出现新窗口的解决办法
有个功能,需要用drag drop api 来做. 发现在firefox下拖放,会出现新的tab 页签,即使在ondragover.ondrop中使用了event.preventDefault也无济于 ...
- window.open打开新窗口被浏览器拦截的处理方法
一般我们在打开页面的时候, 最常用的就是用<a>标签,如果是新窗口打开就价格target="_blank"属性就可以了, 如果只是刷新当前页面就用window.loca ...
- angularjs 新窗口打开
原文链接:angularjs 中state.go 跳转并且打开新的浏览器窗口 业务需要,需要点击打开一个新窗口,并且是点击事件触发的打开新窗口: $scope.lookLook =function(d ...
随机推荐
- [unix]commvault在unix系统上本地安装报“NFS directory cannot be used”
远程安装持续的pending: 本地安装报“NFS directory cannot be used” 修改安装包 安装目录 的权限, 从777改回775. 就可以解决这个报错.
- HNOI2018寻宝游戏
https://www.luogu.org/problemnew/show/P4424 题解 我们首先按位考虑. 如果有一位最终的结果为1,那么我们可以把树的序列看成一个二进制数,先出现的在底位,后出 ...
- Djnago框架组成
Django.core 核心处理库由以下组成: (1)url分析.请求处理.缓存等. Django.conf Django.conf的主要作用有: (1)处理全局配置,如数据库.加载应用.middle ...
- Tomcat系列(10)——Tomcat主要设计模式5种(外观,责任链,观察者,模板方法,命令模式)
核心部分 外观模式: RequestFacade应用门面模式(facade)来封装HttpServletRequest. 观察者模式: 事件监听机制,控制组件生命周期的 Lifecycle .Serv ...
- mysql-binlog日志删除
第一种方法: mysql> show binary logs; 查看mysql bin-log日志,除了这个以外的,其它都可以使用删除. mysql> purge binary logs ...
- java aes CBC的填充方式发现
如下的java代码,手动对block进行填充后,使其为16的整数倍后,加密的时候竟然强行再填充了16位,我在尝试用golang实现这段加密时,反复修改了很久,发现golang版的总是比java加密出来 ...
- 请求数据loading
请求数据加载,CSS3实现 HTML: <!--请求数据loading--> <div class="back_loading"> <div clas ...
- postgresql设置主键
replace(((uuid_generate_v4())::character varying)::text, '-'::text, ''::text)
- BZOJ 5093[Lydsy1711月赛]图的价值 线性做法
博主曾更过一篇复杂度为$O( k· \log k)$的多项式做法在这里 惊闻本题有$ O(k)$的神仙做法,说起神仙我就想起了于是就去学习了一波 幂与第二类斯特林数 推导看这里 $$ x^k=\sum ...
- DoraBox 漏洞练习平台
项目地址: https://github.com/gh0stkey/DoraBox SQL注入 SQLi 数字型 判断表中有多少列 http://127.0.0.1/DoraBox/sql_inje ...