Android基础之初探activity(页面跳转,数据传输)

本文介绍了Android中Activity的页面跳转和数据传输。通过Intent和Bundle对象,实现页面间的跳转和数据打包传递。在接收端,使用getIntent和getBundleExtra获取数据,并展示在TextView上。同时,讲解了如何实现Activity的数据回传,利用finish方法关闭当前Activity,并通过setResult和RESULT_OK进行标识码匹配,确保数据正确回传。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,Android的页面跳转通过不同的activity之间的跳转实现:
简单阶段:两个页面的跳转,主要是使用intent对象;
设置在按钮点击事件里面,当按钮发生点击事件时,页面跳转

//实例化意图对象
①Intent intent=new Intent();
                ②intent.setClass(MainActivity.this,MainActivity02.class);

2,实现不同的页面之间的数据传输
在第一个activity向第二个activity发送消息
原理和页面跳转相同,只是引入了一个bundle对象,bundle的意思为捆,束之意,意思是将数据打包,然后发送到其他页面;

“`
//实例化意图对象
Intent intent=new Intent();
intent.setClass(MainActivity.this,MainActivity02.class);

            //将当前数据封装到bundle对象中
            Bundle bundle=new Bundle();
            bundle.putString("CONTENT",content);
            //使用intent。putExtra方法将bundle扔到另一个activity中
            intent.putExtra("BUNDLE_CONTENT", bundle);

“`值得一提的是在bundle的数据存放以及intent的数据存放时,是类似map集合的,需要为数据设置键值对,将数据放入bundle中,然后设置一个键名,然后将bundle放入intent的putExtra中,然后启动aictivity,数据发送成功。

在数据接收端(即另一个activity),同样需要使用intent和bundle对象;不同的是不在实例化intent,而是getintent。bundle则是接受intent的getBundleExtra方法,得到相应的bundle对象,然后解析bundle得到具体的数据;接着就设置textview,就显示出了另一个activity发送的消息


//        获取activity02的intent对象
        Intent intent = getIntent();
        //通过该intent对象,获取bundle对象
        Bundle bundle = intent.getBundleExtra("BUNDLE_CONTENT");
        //通过bundle对象获取数据
        String msg = bundle.getString("CONTENT");
        //将数据传输给textview
        textView.setText(msg);

3,实现两个activity之间的数据回传

所谓的数据回传,就是在数据发送过来的基础上,让接收端回执给发送端,同样的是使用intent和bundle对象,只是不需要设置setClass,不需要开启activity;

 Intent intent = new Intent();
                Bundle bundle = new Bundle();

                bundle.putString("MSG", "这是回传的数据");
                intent.putExtra("BUNDLE_MSG", bundle);
                setResult(RESULT_OK, intent);

                MainActivity02.this.finish();

finish方法的意思是当页面回传回去之后,关闭本activity;
RESULT_OK是一个标识码,在数据回执接收端有用;

在数据接收端使用了一个方法:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//        super.onActivityResult(requestCode, resultCode, data);
        Log.i(TAG,"onActivityResult");
        if(resultCode==RESULT_OK){
            switch (requestCode){
                case 100:
                    Log.i(TAG,"这是mainActivity02的回传");
                    Bundle bundle=data.getBundleExtra("BUNDLE_MSG");
                    String str=bundle.getString("MSG");
                    textView.setText(str);
                    break;
            }

由此方法负责接受其他activity的数据回传,此例中是单个activity的回传,由于本方法的存在,可以使多个页面实现数据的传递。
此方法使用了result_code;在发送端设置了RESULT_OK,在我看来,就代表一个密钥,当发送端和接收端匹配时,就可以实现数据的传递,不然,则无法传输,switch的存在就是为了应对多个页面传输时。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值