栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

如何返回数据给上一个活动

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何返回数据给上一个活动

返回上一个活动只需要按以下Back键就可以了,并且使用startActivityForResult(),这个方法也是用于启动活动的,而且会返回一个结果给上一个活动。

startActivityForResult()方法接收两个参数,第一个参数是Intent,第二个参数是请求码,用于在之后回调中判断数据的来源。

以下为例子:

首先你需要两个可以互传的Activity ,这里,我们以MainActivity和SecondActivity为例:

MainActivity的Layout如下:



    


SecondActivity的Layout如下:



    
    

接着,我们要让SecondActivity在点击了按钮btn_1之后返回数据到MainActivity:

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.SearchView;
import android.widget.TextView;

import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

public class MainActivity extends AppCompatActivity {
 private EditText edt;
 private Button btn;
 private TextView txt;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        edt = findViewById(R.id.edt);
        btn = findViewById(R.id.btn);
        txt = findViewById(R.id.txt_first);

        btn.setonClickListener(new View.onClickListener() {
            @Override
            public void onClick(View v) {
                String data = edt.getText().toString() ;
                Intent intent = new Intent(MainActivity.this,SecondActivity.class);
                intent.putExtra("extra_data",data);
                startActivityForResult(intent,1);

            }
        });

    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        switch(requestCode){
            case 1:
                if(resultCode == RESULT_OK){
                    String returnedData = data.getStringExtra("return_data");
                    txt.setText(returnedData);
                }
                break;
            default:

        }

    }
}

然后是SecondActivity的代码:


import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class SecondActivity extends AppCompatActivity {
     private TextView txt2;
     private Button btn_2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        Intent intent = getIntent();
       String data= intent.getStringExtra("extra_data");
       txt2 = findViewById(R.id.txt);
       btn_2=findViewById(R.id.btn_1);
       txt2.setText(data);

       btn_2.setonClickListener(new View.onClickListener() {
           @Override
           public void onClick(View v) {
               Intent intent = new Intent(SecondActivity.this,MainActivity.class);
               intent.putExtra("return_data","This is the return of Second Activity.");
               setResult(RESULT_OK,intent);
               finish();
           }
       });

    }
}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/237123.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号