返回数据给上一个活动

Posted hello word

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了返回数据给上一个活动相关的知识,希望对你有一定的参考价值。

1. 当点击第二个活动的时候,返回到第一个活动。传数据。

// 第一个activity

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       // setContentView(R.layout.activity_main);  // 创建视图
        setContentView(R.layout.my_layout);
        // 找到对应的button来监听事件
        findViewById(R.id.butStartAnotherAty).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(MainActivity.this, AnotherAty.class);

                // 这个 1 是你传过去的一个标示
                startActivityForResult(i, 1);  //使用可以返回数据的方式来启动新的activity
            }
        });
        System.out.println("onCreate");
    }


    // 接受从第二个activity返回来的数据方法,会在 onStart 前执行
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode) {
            case 1 :   // 这个是 startActivityForResult 方法启动活动的时候传过去的标示
                if (resultCode == RESULT_OK) {
                    String returnData = data.getStringExtra("data_return");
                    System.out.print(returnData);
                }
                break;
            default:
                break;
        }
    }


//第二个activity
private TextView tv;

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

        findViewById(R.id.returnMainActivity).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent();
                intent.putExtra("data_return", "hello MainActivaty");
                setResult(RESULT_OK, intent);    // 设置返回 intent
                finish();  // 销毁
            }
        });
    }

 

 

2. 点击返回按钮的时候,第二个activity传送数据到第一个activity

    // 第一个activity和上面的一样

    

    // 第二个activity只需要监听这个back键的方法就好了
    // 点击 Back键回到第一个Activity
    @Override
    public void onBackPressed() {
        Intent intent = new Intent();
        intent.putExtra("data_return", "hello MainActivaty for onBackPressed");
        setResult(RESULT_OK, intent);    // 设置返回 intent
        finish();
    }

 

以上是关于返回数据给上一个活动的主要内容,如果未能解决你的问题,请参考以下文章

Activity返回数据给上一个活动

Android7.0 Intent向下一个活动传递数据返回数据给上一个活动

Android8.0 Intent向下一个活动传递数据返回数据给上一个活动

向上一个活动传递数据

如何将字符串数据从活动发送到片段?

如何从片段返回主要活动