Android基础(2)

目录

一. Activity的生命周期

二. RecyclerView上的Activity跳转

三. ActivityForResult功能实现

四. 代码地址


一. Activity的生命周期

Activity表现为四种状态:

  • 活动状态Active
  • 暂停状态pause
  • 停止状态Stop
  • 非活动状态Dead

Activity生命周期图解:

 在Activity中添加log展示生命周期的变化:

 @Override
    protected void onStart() {
        super.onStart();
        Log.d("yun","Onstart:MainActivity");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.d("yun","Onrestart:MainActivity");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.d("yun","Onresume:MainActivity");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.d("yun","Ondestroy:MainActivity");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.d("yun","Onpause:MainActivity");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.d("yun","Onstop:MainActivity");
    }

二. RecyclerView上的Activity跳转

实现功能:

        新建一个Activity,recyclerview中的某一项点击后跳转到该Activity。

设计思路:

        1.在适配器myAdapter的OnBindViewHolder中对每个item进行监听;

        2.创建Itent以启动指定的Activity;

        3.利用Itent向Activity中传递数据;

        4.向startActivity()函数传递Itent以启动Activity实现跳转;

        holder.img3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                listr.add(str);
                Intent intent=new Intent(context,MainActivity_music.class);
                intent.putExtra("music",str);
                context.startActivity(intent);
            }
        });

        5.在新Activity中添加log展示跳转时的生命周期。

实现效果:

 生命周期的变化:

三. ActivityForResult功能实现

实现功能:

        新建Activity,设计按钮收到该Activity的回值。

实现效果:

        点击更新按钮,获取点赞量和收藏量。

设计思路:

        1.设计ActivityForResult获得Activity2的回值;

    public ActivityResultLauncher test= registerForActivityResult(
            new ActivityResultContracts.StartActivityForResult(),
            new ActivityResultCallback<ActivityResult>() {

                @Override
                public void onActivityResult(ActivityResult result) {
                    if(result.getResultCode()==25){

                        TextView textView_like=findViewById(R.id.textView_like);
                        textView_like.setText(result.getData().getStringExtra("like"));
                        TextView textView_collection=findViewById(R.id.textView_collect);
                        textView_collection.setText(result.getData().getStringExtra("collection"));
                    };

                }
            }
    );

        2.在Activity1中进行监听;

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent re_intent=new Intent(MainActivity_music.this,MainActivity_re.class);
                test.launch(re_intent);
            }
        });

        3.在Activity2中设置ResultCode以及返回的数据;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_re);

        int str1= (int) (Math.random()*1000);
        int str2= (int) (Math.random()*100);
        Intent intent=getIntent();
        intent.putExtra("like","点赞数: "+str1);
        intent.putExtra("collection","收藏数: "+str2);
        setResult(25,intent);
        finish();
    }
}

效果展示:

四. 代码地址

https://github.com/BerryberryBear/ikWeChat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值