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新窗口以及传值的更多相关文章

  1. android安卓开发基础小笔记,添加按钮事件,打开新窗体,窗体传值,回传

    给一个按钮添加onclick事件 //获取按钮对象 Button Aiyo = (Button)findViewById(R.id.button1); Aiyo.setOnClickListener( ...

  2. android 打开新窗口

    ImageView loginBtn = (ImageView)findViewById(R.id.login_button); loginBtn.setOnClickListener(new Vie ...

  3. Android 之窗口小部件详解(三)  部分转载

    原文地址:http://blog.csdn.net/iefreer/article/details/4626274. (一) 应用程序窗口小部件App Widgets 应用程序窗口小部件(Widget ...

  4. Android进阶之光-第1章-Android新特性-读书笔记

    第 1 章 Android 新特性 1.1 Android 5.0 新特性 1.1.1 Android 5.0 主要新特性 1. 全新的 Material Design 新风格 Material De ...

  5. Android 的窗口管理系统 (View, Canvas, WindowManager)

    http://blog.csdn.net/ritterliu/article/details/39295271 From漫天尘沙 在图解Android - Zygote 和 System Server ...

  6. JS判断鼠标进入容器方向的方法和分析window.open新窗口被拦截的问题

    1.鼠标进入容器方向的判定 判断鼠标从哪个方向进入元素容器是一个经常碰到的问题,如何来判断呢?首先想到的是:获取鼠标的位置,然后经过一大堆的if..else逻辑来确定.这样的做法比较繁琐,下面介绍两种 ...

  7. html drag api 在firefox 下 拖动出现新窗口的解决办法

    有个功能,需要用drag drop api 来做. 发现在firefox下拖放,会出现新的tab 页签,即使在ondragover.ondrop中使用了event.preventDefault也无济于 ...

  8. window.open打开新窗口被浏览器拦截的处理方法

    一般我们在打开页面的时候, 最常用的就是用<a>标签,如果是新窗口打开就价格target="_blank"属性就可以了, 如果只是刷新当前页面就用window.loca ...

  9. angularjs 新窗口打开

    原文链接:angularjs 中state.go 跳转并且打开新的浏览器窗口 业务需要,需要点击打开一个新窗口,并且是点击事件触发的打开新窗口: $scope.lookLook =function(d ...

随机推荐

  1. x86汇编语言实践(3)

    0 写在前面 为了更深入的了解程序的实现原理,近期我学习了IBM-PC相关原理,并手工编写了一些x86汇编程序. 在2017年的计算机组成原理中,曾对MIPS体系结构及其汇编语言有过一定的了解,考虑到 ...

  2. 在vue中关于element UI 中表格实现下载功能,表头添加按钮,和点击事件失效的解决办法。

    因为在element 中表格是使用el-table的形式通过数据来支撑结构,所以,表格的样式没有自己写的灵活,所以有了没法添加按钮的烦恼.下面是解决的方法. 准备工作: 一.下载npm安装包两个 1. ...

  3. 解决input框自动填充为黄色的问题

    题原因:input 框会自动填充一个颜色  如图所示  解决方法 :通过动画去延迟背景颜色的显示  代码如下 input:-webkit-autofill, textarea:-webkit-auto ...

  4. Css(常用的特殊效果)

    一.前言 不得不说css真强大,总结了几个常用的css特殊效果 二.主要内容 1.几个特殊效果 $green = #02a774; $yellow = #F5A100; $bc = #e4e4e4; ...

  5. C++回顾day03---<string字符串操作>

    一:string优点 相比于char*的字符串,C++标准程序库中的string类不必担心内存是否足够.字符串长度等等 而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下的需要. 二:str ...

  6. 自搭的一个系统框架,使用Spring boot+Vue+Element

    基于:jdk1.8.spring boot2.1.3.vue-cli3.4.1 特性:    ~ 数据库访问使用spring data jpa+alibaba druid    ~ 前后端数据交互使用 ...

  7. JGUI源码:实现蒙版层显示(18)

    有的时候需要显示一个蒙版层,蒙版层显示的主要原理是在指定元素比如div上创建一个子元素div,设置absolute.宽高100%.设置z-index置于顶层,设置半透明效果,fadein,fadeou ...

  8. python常用的内置函数哈哈

    python常用的内置函数集合做一个归类用的时候可以查找 abs 返回数字x的绝对值或者x的摸 all (iterable)对于可迭代的对象iterable中所有元素x都有bool(x)为true,就 ...

  9. 20155324《网络对抗》Exp07 网络欺诈防范

    20155324<网络对抗>Exp07 网络欺诈防范 实践内容 简单应用SET工具建立冒名网站 ettercap DNS spoof 结合应用两种技术,用DNS spoof引导特定访问到冒 ...

  10. Swift 4 Hex Color

    上点干货,写个extension, 可以通过hex值去设置Color,以及通过UIColor的color case 去得到hex值. extension UIColor {     var toHex ...