启动 Activity 并返回结果

要完成的效果如下:

在页面一输入一个值传递到页面二,然后页面二可以传回一个值到页面一。

 

首先,页面一传递的代码:

public class MainActivity extends AppCompatActivity {
    EditText data;  #获取输入值
    Button btn;  #获取按钮
    TextView tt;  #获取显示框
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        # 获取对应控件
        data = findViewById(R.id.editText);
        btn = findViewById(R.id.button);
        tt = findViewById(R.id.textView2);

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                # 关键代码
                # 创建 intent ,并指明传递方向
                Intent intent = new Intent(MainActivity.this,seconActivity.class);
                # 将需要传递的内容放到 intent 中
                intent.putExtra("data1",data.getText().toString());
                # 使用 startActivityForResult 传递与召回,并输入传回码
                startActivityForResult(intent,0x01);  
            }
        });

然后,页面二接收与传递的代码:

public class seconActivity extends AppCompatActivity {
    TextView data1;  # 获取显示框
    EditText data2;  # 获取传递的值
    Button btn;   # 按钮
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_secon);
        data1 = findViewById(R.id.textView2);
        data2 = findViewById(R.id.editText3);
        btn = findViewById(R.id.button3);
        # 关键部分
        # 声明 final 变量
        final Intent intent = getIntent();
        String dd = intent.getStringExtra("data1");
        # 设置显示内容
        data1.setText(dd);
        # 设置传回信息
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                # 关键部分
                intent.putExtra("data2", data2.getText().toString());
                setResult(0x02,intent);
                finish();
            }
        });
    }

最后,页面一接收信息

# 需要在前一个方法外面重写 onActivityResult 方法

@Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        # 当请求码和结果码正确时,就可以接收data里的值
        if((requestCode==0x01)&&(resultCode==0x02)){
            String result = data.getStringExtra("data2");
            tt.setText(result);
        }
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值