安卓学习笔记-Activity

内容

跳转

数据的传递

public class AActivity extends AppCompatActivity {
    private Button AJumpB;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_a);
        AJumpB = findViewById(R.id.AJumpB);
        AJumpB.setOnClickListener(v -> {
            Intent intent = new Intent(AActivity.this,BActivity.class);//新建一个意图对象
            Bundle bundle = new Bundle();//新建一个bundle用于存放要传递的数据
            bundle.putString("name","vuhen");//存放一个string类型数据 key-value形式
            bundle.putInt("qq",2754);//存放一个int类型数据 key-value形式
            intent.putExtras(bundle);//将存好数据的bundle放进意图对象中
            //跳转到BActivity并携带数据,b跳转回来无法携带数据
//            startActivity(intent);
            //跳转到BActivity并携带数据请求码设置为0 这种startActivityForResult跳转能在b回来的时候携带数据
            startActivityForResult(intent,0);
        });
    }

    @Override
    //b回来的时候带的数据 请求码,返回码,意图对象
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Bundle bundle = data.getExtras();//获取b中存放的bundle对象
        System.out.println(bundle.get("bname"));//打印一下bname的数据
        Toast.makeText(AActivity.this,bundle.getString("bname")+","+
                requestCode+","+resultCode,Toast.LENGTH_SHORT).show();
    }
}
public class BActivity extends AppCompatActivity {
    private Button finish;
    private TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_b);
        Bundle bundle = getIntent().getExtras();//获取a携带的bundle
        textView = findViewById(R.id.jumpb_textView);
        textView.setText(bundle.getString("name")+","+bundle.getInt("qq"));//设置textview的值为a传过来的
        finish = findViewById(R.id.finish);
        finish.setOnClickListener(v -> {
            Intent intent = new Intent(BActivity.this,AActivity.class);
            Bundle bundle1 = new Bundle();
            bundle1.putString("bname","哈哈");
            intent.putExtras(bundle1);
            setResult(RESULT_OK,intent);//回传数据给A,返回码-1
            finish();//关闭当前页面
        });

    }
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值