举例说我想要做的一个事情是,在一个主界面(主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(); //data为B中回传的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);
}
}
-------------------------------------------------------------------------
相关推荐
1. 使用`Handler`和`Looper`: 创建一个在主线程中的`Handler`实例,它能接收到子线程发送的消息,并在主线程中更新UI。`Looper`是`Handler`的后台消息循环器,确保消息得到处理。例如: ```java // 在主线程中...
在Verilog中,子模块的调用是一个核心概念,它允许设计者模块化地构建复杂的电子系统。在ISE(Integrated Synthesis Environment)这样的FPGA(现场可编程门阵列)开发环境中,子模块的调用尤为关键。 在C语言中,...
在Qt开发过程中,创建用户界面(UI)是至关重要的一步,尤其对于初学者而言,理解和掌握如何通过主窗口界面调用多个独立的UI文件是一项基础但关键的技能。本资源提供的源码示例展示了如何在主窗口中设置按钮,通过...
在LabVIEW中,设计用户界面(UI)是通过构建“前面板”来实现的,而“页面切换”则是管理不同功能或工作流程的一种常见方法。本教程将详细讲解如何在LabVIEW的主页面与两个子界面之间进行切换,并提供相关实践操作...
基于MATLAB的数字信号处理,带界面GUI,主界面调用各个子界面。分不同模块实现,如信号基本运算,时域频域关系,卷积,抽样信号等等。参数界面可调,
在主界面上,我们可以使用QTabWidget作为容器,并通过上述的布局管理器方法将其添加到不同的标签页中。这种方式不仅简化了界面设计的过程,还使得界面更加一致性和易于维护。 #### 四、注意事项 - 在添加子页面时...
本文将深入探讨如何实现一个主窗口中嵌入子界面的效果,类似于C#中的TabControl控件,但无需实际使用TabControl。我们将讨论如何通过ContentControl、Frame和Page组件来实现这一目标。 首先,让我们理解核心组件的...
在Python的图形用户界面开发中,Qt5是一个广泛使用的库,它提供了丰富的组件和功能来构建桌面应用程序。本文将深入探讨如何在Qt5 GUI中实现主窗口(Parent Window)与子窗口(Child Window)之间的数据传递,确保...
QT主菜单界面框架是软件开发中的一个重要组成部分,尤其在创建桌面应用时,它为用户提供了一种组织和访问功能的直观方式。QT是一个流行的开源跨平台应用程序开发框架,由Trolltech公司(现为The Qt Company)开发,...
在标题提到的“使用ActivityGroup 和ViewPager结合”是一种常见的方式,尤其是当需要在一个Activity内展示多个子Activity时。ActivityGroup是Android早期版本(API 13之前)提供的一种机制,用于在单一Activity中...
在Qt框架中,创建一个主窗口并从主窗口中弹出子窗口是常见的操作,尤其在设计GUI应用程序时。这个过程通常涉及到信号和槽机制,这是Qt的核心特性之一,用于对象间的通信。让我们深入探讨如何在Qt中实现这一功能。 ...
课题是基于MATLAB的数字信号处理,带界面GUI,主界面调用各个子界面。分不同模块实现,如信号基本_shuzixinhao
在上述的描述中,开发者想要实现一个应用,其中底部有三个功能模块的图片按钮(btnModule1、btnModule2、btnModule3),点击这些按钮可以在主Activity中动态切换并显示不同的Activity和对应的ContentView。...
在Qt编程中,UI(用户界面)的更新通常在主线程中进行,因为GUI(图形用户界面)组件的渲染和事件处理是与主线程紧密关联的。然而,当执行耗时的操作,如网络请求、大数据处理或长时间计算时,如果在主线程中执行,...
在Delphi编程环境中,开发一个应用常常涉及到主程序与多个子窗口或子模块之间的交互。主程序调用子窗口(多窗口)是一个常见的设计模式,它有助于实现软件的模块化和功能拆分,提高代码的可维护性和复用性。本实例...
* 其次,我们需要在主 VI 中创建一个事件结构,并将其链接到子 VI 中。 * 最后,我们需要在子 VI 中创建一个返回按钮,并将其链接到主 VI 中。 通过遵循这些步骤,我们可以实现 LabVIEW 中的界面跳转,提高了程序的...
易语言模块大全,里面包含775个模块!!! 易语言模块大全,里面包含775个模块!!! 易语言模块大全,里面包含775个模块!!! ACCESS到高级表格1.1(1.1).zip Access操作(1.0).zip ACCESS到超级列表框(1.0).zip ...
在Python的GUI编程中,PyQt5是一个非常强大的库,它允许开发者创建功能丰富的桌面应用程序。本主题聚焦于如何在Python3.x版本中利用PyQt5实现动态加载子窗口到主窗口,特别是通过QTreeWidget作为导航栏,并利用...
- 在子工程的原理图中,添加必要的PORT,以便主工程能够将对应的网络连接到子工程模块上。 - 使用`Tools -> Annotate`选项,选择“GenerateReuseModule”来创建可复用的原理图模块。注意不要选择...
XE10是Embarcadero Delphi的一个版本,提供了强大的工具来帮助开发者创建美观且功能丰富的主界面。本篇文章将深入探讨如何使用XE10进行界面设计,特别是如何巧妙地运用Layout来优化布局。 【描述】: 1. **启动XE...