Ø在实际的应用中,我们不仅仅要向Activity传递数据,而且要从Activity中返回数据,虽然返回数据和传递数据类似,也可以采用前面4种方法,但是一般建议采用Intent对象的方式来返回数据,使用这种方式返回数据,需要使用startActivityForResult方法来显示Activity。
Ø案例一
package com.android.myintent; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; public class Main extends Activity { /** Called when the activity is first created. */ private Button button; private final static int REQUESTCODE = 1;//返回的结果码 private EditText one,two,result; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); button = (Button) this.findViewById(R.id.button); one = (EditText)this.findViewById(R.id.one); two = (EditText)this.findViewById(R.id.two); result = (EditText)this.findViewById(R.id.result); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub int a = Integer.parseInt(one.getText().toString()); int b = Integer.parseInt(two.getText().toString()); Intent intent = new Intent(Main.this, OtherActivity.class); intent.putExtra("a", a); intent.putExtra("b", b); //启动Intent startActivityForResult(intent, REQUESTCODE);// 表示可以返回结果 } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); if(resultCode==2){ if(requestCode==REQUESTCODE){ int three = data.getIntExtra("three", 0); result.setText(String.valueOf(three)); } } } }
package com.android.myintent; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class OtherActivity extends Activity { private Button button; private TextView textView; private EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.other); button = (Button)this.findViewById(R.id.button2); textView = (TextView)this.findViewById(R.id.msg); editText = (EditText)this.findViewById(R.id.three); Intent intent = getIntent(); int a = intent.getIntExtra("a", 0); int b = intent.getIntExtra("b", 0); textView.setText(a+" + "+b+" = "+" ? "); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(); int three = Integer.parseInt(editText.getText().toString()); intent.putExtra("three", three); //通过Intent对象返回结果,setResult方法, setResult(2, intent); finish();//结束当前的Activity的生命周期。 } }); } }
相关推荐
在实际的应用中,我们不仅仅要向Activity传递数据,而且要从Activity中返回数据,虽然返回数据和传递数据类似,也可以采用前面4种方法,但是一般建议采用Intent对象的方式来返回数据,使用这种方式返回数据,需要...
总的来说,Android Activity之间的数据传递是一个广泛而重要的主题,涉及多种方式和策略。开发者应根据具体需求选择合适的方法,确保数据安全、高效地在Activity间流动。在实际开发中,理解并熟练掌握这些技术将有助...
下面将详细介绍如何在Android中实现父Activity获取子Activity返回的信息。 首先,我们创建一个子Activity。在这个子Activity中,用户可能会进行一些交互,例如选择数据、填写表单等。完成这些操作后,子Activity...
本篇文章将详细讲解如何实现`Service`到`Activity`的数据传递。 1. **创建Service** 首先,我们需要创建一个`Service`。在Android Studio中,可以通过新建一个类并继承自`Service`。例如,我们可以创建一个名为`...
- 通过Intent传递数据:启动Activity时,可以在Intent中添加额外的数据,被启动的Activity可以通过`getIntent()`获取。 - `startActivityForResult()`:用于启动另一个Activity并等待结果返回,通过`...
3. **传递数据**: 在Intent中,可以通过`putExtra()`方法传递额外的数据给目标Activity。例如: ```java intent.putExtra("key", "value"); ``` 目标Activity可以通过`getIntent().getStringExtra("key")`来获取...
在安卓应用开发过程中,经常需要在多个`Activity`之间进行数据传递。这种交互对于实现复杂的应用逻辑至关重要,例如用户登录验证、表单填写等场景。本文将详细介绍如何在两个`Activity`(假定为A和B)之间传递数据...
6. **startActivityForResult()**: 当需要从目标Activity返回数据时,可以使用startActivityForResult()。在目标Activity完成时,可以通过setResult()设置结果,然后在调用者Activity的onActivityResult()方法中处理...
在Android旧版本中,我们通常使用`startActivityForResult()`启动Activity,并在重写`onActivityResult()`方法中处理返回数据: ```java startActivityForResult(intent, REQUEST_CODE); ``` 在目标Activity中: ...
另一种方式是通过BroadcastReceiver进行数据传递。Service可以发送Broadcast,Activity注册接收这个Broadcast,从而获取数据。Service中发送广播: ```java Intent intent = new Intent("com.example.MY_ACTION"); ...
### Android之Activity的生命周期与Activity间的跳转及数据传递 #### Activity的概念与作用 在Android应用开发中,`Activity`是四大组件之一,主要负责管理应用程序的用户界面(UI)。一个Activity代表一个屏幕上的...
Intent允许开发者在运行时连接不同的组件,如Activity和Service,实现程序间的跳转和数据传递。本篇主要探讨Intent的使用、属性以及IntentFilter。 首先,Intent初识。Intent不仅仅是一个简单的消息对象,它更是一...
当我们需要在不同的Activity之间传递数据时,比如用户选择头像的操作,就需要掌握Activity间的数据传递技术。本文将深入探讨如何在Android中实现这一功能。 首先,我们要知道在Android中,有多种方式可以在Activity...
2. 启动带有返回结果的Activity:若需从目标Activity返回结果,可以在启动时添加`startActivityForResult()`,并在目标Activity中使用`setResult()`设置返回值,最后调用`finish()`结束Activity。 四、关闭Activity...
以上就是Android从Activity向ViewPager中的Fragment传递数据的完整过程和相关知识点,实践中可以根据项目需求选择合适的方法进行数据传递。在开发过程中,理解并熟练掌握这些技巧对于提升用户体验和代码质量至关重要...
- 创建一个BaseActivity作为所有Activity的基类,可以统一处理参数传递逻辑,如在`onCreate(Bundle savedInstanceState)`中自动从Intent获取并设置数据。 - 基类中可以定义`protected void setExtras(Bundle ...
当需要从启动的Activity返回数据时,可以使用`startActivityForResult()`方法。在接收Activity中,我们可以通过`setResult()`设置结果,然后在原始Activity中覆盖`onActivityResult()`方法来接收返回的数据。 四、...
本文将深入探讨Android多线程中的数据传递以及如何通过Handle实现UI更新。 首先,我们了解下Android线程的基本概念。Android应用主要运行在主线程,也称为UI线程,负责处理用户交互和更新UI。由于主线程不允许执行...
例如,当启动一个新的Activity时,可以通过Intent传递数据,如通过putExtra()方法添加键值对,然后在目标Activity中通过getExtras()获取这些数据。此外,Intent还能携带额外的信息,如请求码(requestCode),用于在...
当需要从目标Activity返回结果到启动Activity时,可以使用`startActivityForResult()`。在目标Activity完成操作后,调用`setResult()`设置结果,然后使用`finish()`关闭Activity。 1. 启动带结果的Activity:`...