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 ...
随机推荐
- PWN! 第一次测试答案及讲解
题目链接:https://vjudge.net/contest/279567#overview 题目密码:190118 1.A+B:(考察点:EOF输入.加法运算) Topic: Calculate ...
- LOJ#2668 书法家
题意:要在一张网格纸上画出NOI图形,使得所占格子的权值和最大. 解:暴力DP即可... 从左往右,每个字母都可以被划分成三块,且每块都可用上下两维来表示. 于是一块一块的DP.考虑如何O(1)转移. ...
- JDK TOMCAT MYSQL 配置
Java 开发环境 环境和版本介绍: 系统环境: CentOS-7-x86_64- 1810 软件本版 J d k 版本 jdk-8u181-linux-x64 Tomcat 版本 apac ...
- 洛伦兹曲线(Lorenz curve)提升指数、提升表和提升图
sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campai ...
- UNIX域协议之描述符传递
一.mycat程序 #include <fcntl.h> #include <stdlib.h> #include <unistd.h> #define BUFFS ...
- [算法竞赛入门经典] 象棋 ACM/ICPC Fuzhou 2011, UVa1589 较详细注释
Description: Xiangqi is one of the most popular two-player board games in China. The game represents ...
- 将驱动编译进Linux内核
*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...
- 【vagrant】硬盘扩容
如题,笔者之前一直在使用vagrant作为虚拟机使用. vagrant的好处自然不必说,只是有一天遇到了一个麻烦事--虚拟硬盘空间不!够!了! 笔者使用了df -h命令一看,结果发现,主硬盘(/dev ...
- [经验交流] kubernetes v1.11 更新了高可用方案
kubernetes v1.11已经发布了一段时间,和以前相比,一个显著亮点是更新了高可用方案: https://kubernetes.io/docs/setup/independent/high-a ...
- python numpy 间的的数据变算公式
import numpy as np a = np.arange(100) print(np.sum(a))#求和 print(np.mean(a))#平均值 print(np.max(a))#最大值 ...