`

举例说我想要做的一个事情是,在一个主界面(主Activity)上能连接往许多不同子功能模块(子Activity上去),当子模块的事情做完之后就回到主界面,或许还

 
阅读更多

举例说我想要做的一个事情是,在一个主界面(Activity)上能连接往许多不同子功能模块(Activity上去),当子模块的事情做完之后就回到主界面,或许还同时返回一些子模块完成的数据交给主Activity处理。这个时候就要用到回调函数onActivityResult()。 

 

现在贴上一个关于onActivityResult的用法的小例子的代码:

onActivityResult.java

主要的Activity,一会会先执行此Activity,然后调用B Activity,并向其发送数据,通过回调函数来获取B传回来的值。

 

 

public class onActivityResult extends Activity {

   /** Called when the activity is first created. */

 

   @Override

   public void onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       setContentView(R.layout.main);

       StartA();

   }

   public void StartA()

   {

         Button buttonA = (Button)findViewById(R.id.button1);

         buttonA.setOnClickListener(new View.OnClickListener() {

                public void onClick(View v) {

                           // TODO Auto-generated method stub

//                     onActivityResult.this.setContentView(R.layout.second);

//                     onActivityResult.this.StartB();

 

                              Intent intent = new Intent(onActivityResult.this,ClassB.class);

                                  String passString = "Hello,this is A";

                                 intent.putExtra("ToB", passString);

                                  startActivityForResult(intent, 0);

                           

 

                    }

             });

   }

   protected void onActivityResult(int requestCode, int resultCode, Intent data) {

         switch (resultCode) { //resultCode为回传的标记,我在B中回传的是RESULT_OK

                case RESULT_OK:

         Bundle b=data.getExtras(); //dataB中回传的Intent

         String str=b.getString("FromB");//str即为回传的值

         TextView view = (TextView)findViewById(R.id.textA);

         view.setText(str);

                 break;

                default:

                   break;

         }

         }

   

   

   /*public void StartB()

   {

         Button buttonB = (Button)findViewById(R.id.button2);

         buttonB.setOnClickListener(new View.OnClickListener() {

                public void onClick(View v) {

                           // TODO Auto-generated method stub

                       onActivityResult.this.setContentView(R.layout.main);

                       onActivityResult.this.StartA();

 

                    }

             });

   }*/

}

 

----------------------------------------------------------------------------------------------------------------------

ClassB.java

 

public class ClassB extends Activity{

      private Intent intent;

   public void onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       setContentView(R.layout.second);

       

       intent = getIntent();

             String result = intent.getStringExtra("ToB");

       

       

         Button button = (Button)findViewById(R.id.button2);

       button.setOnClickListener(new View.OnClickListener() {

                    

                    @Override

                    public void onClick(View v) {

                           // TODO Auto-generated method stub

                           Intent intent = new Intent(ClassB.this,onActivityResult.class);

                           String passString = "Hello,this is B";

                           intent.putExtra("FromB", passString);

                           setResult(RESULT_OK, intent);

                           finish();

                    }

             });

      TextView textView = (TextView)findViewById(R.id.textB);

       textView.setText(result);

   }

 

}

-------------------------------------------------------------------------

分享到:
评论

相关推荐

    android 在非activity类中显示界面

    1. 使用`Handler`和`Looper`: 创建一个在主线程中的`Handler`实例,它能接收到子线程发送的消息,并在主线程中更新UI。`Looper`是`Handler`的后台消息循环器,确保消息得到处理。例如: ```java // 在主线程中...

    Verilog子模块调用教程

    在Verilog中,子模块的调用是一个核心概念,它允许设计者模块化地构建复杂的电子系统。在ISE(Integrated Synthesis Environment)这样的FPGA(现场可编程门阵列)开发环境中,子模块的调用尤为关键。 在C语言中,...

    Qt建立主窗口界面控制按钮调用两个独立ui界面

    在Qt开发过程中,创建用户界面(UI)是至关重要的一步,尤其对于初学者而言,理解和掌握如何通过主窗口界面调用多个独立的UI文件是一项基础但关键的技能。本资源提供的源码示例展示了如何在主窗口中设置按钮,通过...

    Qt界面中添加设计好的子页面

    在主界面上,我们可以使用QTabWidget作为容器,并通过上述的布局管理器方法将其添加到不同的标签页中。这种方式不仅简化了界面设计的过程,还使得界面更加一致性和易于维护。 #### 四、注意事项 - 在添加子页面时...

    WPF子界面嵌入主窗口示例代码

    本文将深入探讨如何实现一个主窗口中嵌入子界面的效果,类似于C#中的TabControl控件,但无需实际使用TabControl。我们将讨论如何通过ContentControl、Frame和Page组件来实现这一目标。 首先,让我们理解核心组件的...

    python Qt5GUI界面主窗口和子窗口相互传值,保证能用

    在Python的图形用户界面开发中,Qt5是一个广泛使用的库,它提供了丰富的组件和功能来构建桌面应用程序。本文将深入探讨如何在Qt5 GUI中实现主窗口(Parent Window)与子窗口(Child Window)之间的数据传递,确保...

    QT主菜单界面框架

    QT主菜单界面框架是软件开发中的一个重要组成部分,尤其在创建桌面应用时,它为用户提供了一种组织和访问功能的直观方式。QT是一个流行的开源跨平台应用程序开发框架,由Trolltech公司(现为The Qt Company)开发,...

    系统功能模块设计文档

    2. 模块划分:将功能类进一步划分为具体的模块,每个模块完成一个或多个相关的子功能。 3. 接口定义:明确模块之间的接口,定义输入、输出以及交互方式。 4. 模块组合:通过接口连接各个模块,形成完整的系统架构。 ...

    qt--主窗口中按钮弹出子窗口,并把主窗口信号发送给子窗口

    在Qt框架中,创建一个主窗口并从主窗口中弹出子窗口是常见的操作,尤其在设计GUI应用程序时。这个过程通常涉及到信号和槽机制,这是Qt的核心特性之一,用于对象间的通信。让我们深入探讨如何在Qt中实现这一功能。 ...

    c#使用进度条加载主界面

    在C#编程中,"使用进度条加载主界面"是一个常见的用户界面(UI)优化技巧,主要用于提升用户体验,让用户能够直观地看到程序的运行状态。本文将深入探讨如何利用进度条来显示主界面的加载过程,同时涉及委托和线程的...

    Android开发—使用ActivityGroup来切换Activity和Layout.pdf

    在上述的描述中,开发者想要实现一个应用,其中底部有三个功能模块的图片按钮(btnModule1、btnModule2、btnModule3),点击这些按钮可以在主Activity中动态切换并显示不同的Activity和对应的ContentView。...

    QT多线程—主界面卡死解决方案

    在编程领域,特别是GUI(图形用户界面)应用开发中,保持用户界面的流畅性是至关重要的。当程序执行耗时操作时,如果这些操作在主线程中运行,会导致UI无响应,也就是我们常说的“卡死”。为了解决这个问题,程序员...

    Delphi工具主程序调用子窗口(多窗口)

    在Delphi编程环境中,开发一个应用常常涉及到主程序与多个子窗口或子模块之间的交互。主程序调用子窗口(多窗口)是一个常见的设计模式,它有助于实现软件的模块化和功能拆分,提高代码的可维护性和复用性。本实例...

    在CADENCE中将一个PCB复制到另一个PCB中

    - 在子工程的原理图中,添加必要的PORT,以便主工程能够将对应的网络连接到子工程模块上。 - 使用`Tools -> Annotate`选项,选择“GenerateReuseModule”来创建可复用的原理图模块。注意不要选择...

    易语言模块大全(共775个模块)

    易语言模块大全,里面包含775个模块!!! 易语言模块大全,里面包含775个模块!!! 易语言模块大全,里面包含775个模块!!! ACCESS到高级表格1.1(1.1).zip Access操作(1.0).zip ACCESS到超级列表框(1.0).zip ...

    labview 界面相互跳转

    在LabVIEW中,“界面相互跳转”指的是在不同的用户界面(VI,Virtual Instrument)之间进行导航,这在设计复杂的用户界面和应用程序流程时尤为重要。下面我们将详细探讨LabVIEW界面相互跳转的相关知识点。 1. **...

    labview中界面跳转

    * 其次,我们需要在主 VI 中创建一个事件结构,并将其链接到子 VI 中。 * 最后,我们需要在子 VI 中创建一个返回按钮,并将其链接到主 VI 中。 通过遵循这些步骤,我们可以实现 LabVIEW 中的界面跳转,提高了程序的...

    Python3.x+Pyqt5动态加载子窗口,PyQt5主窗口动态加载Widget实例代码

    在Python的GUI编程中,PyQt5是一个非常强大的库,它允许开发者创建功能丰富的桌面应用程序。本主题聚焦于如何在Python3.x版本中利用PyQt5实现动态加载子窗口到主窗口,特别是通过QTreeWidget作为导航栏,并利用...

    qt编程_在子线程中更新UI界面

    在Qt编程中,UI(用户界面)的更新通常在主线程中进行,因为GUI(图形用户界面)组件的渲染和事件处理是与主线程紧密关联的。然而,当执行耗时的操作,如网络请求、大数据处理或长时间计算时,如果在主线程中执行,...

Global site tag (gtag.js) - Google Analytics