`

Android 从Activity返回数据

 
阅读更多
Main.java
public class Main extends Activity {

    private Button button;
    private EditText input1, input2, result;
    private final static int REQUEST_CODE=1;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        input1 = (EditText)this.findViewById(R.id.input1);
        input2 = (EditText)this.findViewById(R.id.input2);


        button = (Button)this.findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View view) {
                String input1str = input1.getText().toString();
                String input2str = input2.getText().toString();
                int a = Integer.parseInt(input1str);
                int b = Integer.parseInt(input2str);

                Intent intent = new Intent(Main.this, OtherActivity.class);
                intent.putExtra("a",a);
                intent.putExtra("b",b);
                startActivityForResult(intent, REQUEST_CODE);
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode==OtherActivity.RESULT_CODE){
            if(requestCode==REQUEST_CODE){
                int return_int = data.getIntExtra("result",0);
                result = (EditText)this.findViewById(R.id.result);
                result.setText(return_int);
            }
        }
    }
}


OtherActivity.java
public class OtherActivity extends Activity{

    private TextView label;
    private EditText input;
    private Button button;
    public final static int RESULT_CODE=2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.other);

        label = (TextView)this.findViewById(R.id.label);
        input = (EditText)this.findViewById(R.id.input);
        button =(Button)this.findViewById(R.id.button);

        Intent intent = getIntent();
        int a = intent.getIntExtra("a", 0);
        int b = intent.getIntExtra("b", 0);
        label = (TextView)this.findViewById(R.id.label);
        label.setText(a +  " + " + b + " = ?");

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                int input_int =  Integer.parseInt(input.getText().toString());

                Intent intent = new Intent();
                intent.putExtra("result", input_int);
                //通过Intent对象返回结果,使setResult
                setResult(RESULT_CODE,intent);
                //结束当前的Activity生命周期
                finish();
            }
        });

    }
}

分享到:
评论

相关推荐

    Android 从Activity中返回数据

    在实际的应用中,我们不仅仅要向Activity传递数据,而且要从Activity中返回数据,虽然返回数据和传递数据类似,也可以采用前面4种方法,但是一般建议采用Intent对象的方式来返回数据,使用这种方式返回数据,需要...

    Android父Activity获取子Activity返回信息demo

    下面将详细介绍如何在Android中实现父Activity获取子Activity返回的信息。 首先,我们创建一个子Activity。在这个子Activity中,用户可能会进行一些交互,例如选择数据、填写表单等。完成这些操作后,子Activity...

    android Activity之间数据的回传

    ### Android Activity之间数据的回传 #### 一、引言 在Android开发中,Activity间的交互是非常常见的需求。特别是当我们需要从一个Activity跳转到另一个Activity,并希望在完成某些操作后能够将数据回传给原始...

    实现androidActivity的跳转,数据返回,传数据

    在Android旧版本中,我们通常使用`startActivityForResult()`启动Activity,并在重写`onActivityResult()`方法中处理返回数据: ```java startActivityForResult(intent, REQUEST_CODE); ``` 在目标Activity中: ...

    android Activity之间的数据传递

    本教程将深入探讨如何在Android的Activity之间传递数据,以及如何在启动的Activity销毁后,主Activity能接收到返回的结果。 首先,我们要了解Activity间的启动模式。Android提供了四种启动模式:标准模式(Standard...

    使用ViewModel解决多个Activity数据共享问题(Kotlin版)

    在Android应用开发中,尤其是使用Kotlin作为主要编程语言时,如何有效地在多个Activity之间共享数据是一个常见的挑战。`ViewModel`是Android架构组件之一,它为了解决这个问题提供了优雅的解决方案。本文将深入探讨...

    Android 打开Activity,获取其返回结果Demo

    resultCode表示新Activity的执行结果,而data Intent则包含了新Activity返回的数据。 总结来说,Android的Activity间通信主要依赖Intent,通过startActivityForResult()可以实现启动一个Activity并等待其返回结果。...

    Activity返回到指定Activity页面Demo

    当我们谈论“Activity返回到指定Activity页面”时,这是Android中的一个关键概念,涉及到Activity的生命周期、Intent以及栈管理。 首先,理解Activity的生命周期至关重要。每个Activity都有如onCreate(), onStart()...

    Android开发 猴子摘桃小项目——学习Activity之间的数据回传

    3. **StartActivityForResult()**: 当需要从目标Activity返回数据时,我们可以使用startActivityForResult()方法启动新Activity。这个方法允许我们在结果返回时调用onActivityResult()方法,以便处理返回的数据。 4...

    Android 中从activity1跳转到activity2再回到activity所经历的生命周期

    ### Android 中从Activity1跳转到Activity2再回到Activity1所经历的生命周期 在Android开发过程中,理解Activity的生命周期对于管理界面状态、处理用户交互以及响应系统事件至关重要。本文将详细解析从一个Activity...

    android入门activity跳转源代码

    通过以上步骤,你可以实现Android应用中Activity的基本跳转和数据传递。然而,实际开发中可能还会涉及到更复杂的场景,如使用BroadcastReceiver、Service等组件,以及Fragment之间的交互。继续深入学习Android框架,...

    Android review 打开activity返回结果

    当我们需要在一个Activity启动另一个Activity并期待得到一些结果时,就需要使用到`startActivityForResult()`方法,这就是“Android review 打开activity返回结果”这个话题的核心。下面将详细介绍这个过程及其相关...

    Android Activity学习笔记

    Android Activity学习笔记 Android Activity是Android系统中最基本的组件之一,它负责处理用户交互和显示用户界面。...Activity的生命周期、数据交互、启动模式和Task和BackStack都是Android开发中非常重要的知识点。

    Android 销毁当前的Activity

    这种机制可以确保 Activity 能够适应不同的屏幕方向,但是也会带来一些问题,如数据丢失、界面刷新等。 那么,如何让 Android 横竖屏切换时不销毁当前的 Activity 呢?答案就在于使用 `android:configChanges` 属性...

    android Activity 详述 demo

    3. 返回数据通常通过`startActivityForResult(Intent, int)`启动Activity,然后在重写的`onActivityResult(int, int, Intent)`中接收。 五、Activity的配置变更 当设备配置(如屏幕方向、语言)改变时,系统默认会...

    Android例子源码Activity间的数据传递

    6. **startActivityForResult()**: 当需要从目标Activity返回数据时,可以使用startActivityForResult()。在目标Activity完成时,可以通过setResult()设置结果,然后在调用者Activity的onActivityResult()方法中处理...

    Android-Service与Activity传值

    在Android应用开发中,`Service`和`Activity`是两个重要的组件。`Service`用于在后台执行长时间运行的任务,而`Activity`则负责用户界面交互。在某些场景下,我们可能需要在`Service`和`Activity`之间传递数据,比如...

    Android之Activity的生命周期和Activity间的跳转和数据传递)

    ### Android之Activity的生命周期与Activity间的跳转及数据传递 #### Activity的概念与作用 在Android应用开发中,`Activity`是四大组件之一,主要负责管理应用程序的用户界面(UI)。一个Activity代表一个屏幕上的...

    035_android_Activity入门和跳转

    如果需要从启动的Activity返回结果,可以使用startActivityForResult(),在目标Activity中调用setResult()设置结果,然后在调用者Activity的onActivityResult()方法中接收结果。 8. Activity堆栈管理: Android系统...

    android实现activity跳转

    如果你需要从目标Activity返回结果到原始Activity,可以使用`startActivityForResult()`方法启动Activity,并在目标Activity中调用`setResult()`方法设置结果,最后用`finish()`结束Activity。原始Activity会重写`...

Global site tag (gtag.js) - Google Analytics