activity的跳转带返回数据

第一个界面:

package com.lyz.news.jkxy;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class AtyOne extends Activity {

    private Button mbtn;
    private TextView mtv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_aty_one);
       mbtn= (Button) findViewById(R.id.btn_one_spik);
        mtv= (TextView) findViewById(R.id.tv_one);
        mbtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(AtyOne.this,AtyCallBack.class);
                intent.putExtra("dataone","lyz");
                //想接收被启动的activity的参数的话,第使用来startActivityForResult接收,用code  0来判断请求的意义是什么
                startActivityForResult(intent,65465);
            }
        });


    }

    /**
     *
     * @param requestCode 请求码 来判断请求的意义
     * @param resultCode 结果码
     * @param data 指定的是第二界面的Intent 所携带的data  key值
     */
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        mtv.setText("另一个activity返回的数据:"+data.getStringExtra("data"));
    }
}
第二个界面


package com.lyz.news.jkxy;

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 AtyCallBack extends Activity {

    private Button mbnTwo;
    private EditText editText;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_aty_call_back);

       mbnTwo= (Button) findViewById(R.id.btn_two);
        editText= (EditText) findViewById(R.id.two_call_back);
        mbnTwo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //把intent作为数据的载体
                Intent i=new Intent();
                //这个data会传递给 第一个界面的onActivityResult继承的方法
                i.putExtra("data",editText.getText().toString());
                setResult(1231654, i);
                finish();
            }
        });
    }

}

第一个界面跳过后,在第二界面可以在edtiew里写数据然后点击Btn后,返回第一界面,第一个界面TextView会写的数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Activity跳转返回结果的执行流程一般包括以下几个步骤: 1. 在源Activity中调用startActivityForResult()方法,启动目标Activity,并传递一些必要的参数。 2. 在目标Activity中,处理传递过来的参数,并进行相应的操作。 3. 在目标Activity中,通过setResult()方法设置返回结果,并调用finish()方法关闭当前Activity。 4. 在源Activity中,重写onActivityResult()方法,处理目标Activity返回的结果,并进行相应的操作。 具体流程如下: 1. 在源Activity中,调用startActivityForResult()方法启动目标Activity,并传递一些必要的参数。 ``` Intent intent = new Intent(MainActivity.this, SecondActivity.class); intent.putExtra("name", "张三"); startActivityForResult(intent, 1); ``` 2. 在目标Activity中,获取传递过来的参数,并进行相应的操作。 ``` Intent intent = getIntent(); String name = intent.getStringExtra("name"); // ... ``` 3. 在目标Activity中,通过setResult()方法设置返回结果,并调用finish()方法关闭当前Activity。 ``` Intent intent = new Intent(); intent.putExtra("result", "操作成功"); setResult(RESULT_OK, intent); finish(); ``` 4. 在源Activity中,重写onActivityResult()方法,处理目标Activity返回的结果,并进行相应的操作。 ``` @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 1 && resultCode == RESULT_OK) { String result = data.getStringExtra("result"); // 处理返回结果 } } ``` 以上就是Activity跳转返回结果的执行流程。通过这种方式,可以在不同的Activity之间进行数据传递和交互,增强了Android应用程序的交互性和实用性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值