作业2:Activity的生命周期与跳转

目录

1.作业内容

1、请根据课程内容实现对Activity生命周期的理解,使用log展示生命周期的状态变化

2、根据博客:https://www.jianshu.com/p/c4cfe38a91ed的内容(进阶篇中的 “点击”),在前次作业的基础上增加列表项的单项点击功能,具体要求是:新建一个新的activity1,recycleview的某一项点击后跳转到这个新的activity1。如:点击新闻列表会跳转到新闻详情页面;

3、实现最新的activityforresult功能,具体要求如下:新建一个新的activity2,在activity1上添加按钮可收到activity2的回传值。如:新闻详情页面中点击收藏按钮可显示当前的收藏数量为N。

2.过程

1、请根据课程内容实现对Activity生命周期的理解,使用log展示生命周期的状态变化

步骤:

1.创建两个activity在其中继承实现onStart等方法用来观察生命周期 

2.创建应该点击来触发页面跳转

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main3);
        button = findViewById(R.id.button3);
        textView=findViewById(R.id.textView3);
        Context context=this;
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //跳转
                Intent intent =new Intent(context,MainActivity2.class);
                //传值
                  intent.putExtra("name","xr");
                  //startActivity(intent);
                //回调
                text.launch(intent);
                //startActivityForResult(intent,1);
            }
        });
    }

3.结果:

Activity第一次启动,回调如下:onCreate -> onStart -> onResume、

打开新Activity:2先onStart -> onResume 然后1onPause->onStop 

2返回1  :1先onStop->onStart->onResvme 2onresvme->onStop->onDestroy

2.在前次作业的基础上增加列表项的单项点击功能

1.新建一个itemactivity跳转页面

2.在adaptr 的onBindViewHolder方法中添加点击用于跳转

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
        holder.item_name.setText(list_name.get(position));
        holder.item_vale.setText(list_vale.get(position));
        holder.imageView.setImageResource(R.drawable.wallhaven2ejeo6);
        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(context,itemActivity.class);
                context.startActivity(intent);
            }
        });
    }

3.效果

3.实现最新的activityforresult功能

1.新建一个resvlit 页面用于回传值不需要进行布局

2.在itemacitivity中创建回调函数

    public ActivityResultLauncher test;
    {
        test=registerForActivityResult(
                new ActivityResultContracts.StartActivityForResult(),
                new ActivityResultCallback<ActivityResult>() {
                    @Override
                    public void onActivityResult(ActivityResult result) {
                        if(result.getResultCode()==2){
                            Log.d("xr","onActivityResult==");
                         textView.setText(result.getData().getStringExtra("data"));
                        }
                    }
                }
        );
    }

3.添加点击事件用于回调

button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent(itemActivity.this,resvlit.class);
                test.launch(intent);
            }
        });

4.在resvlit中进行返回数据

 Intent intent=getIntent();
        intent.putExtra("data","聊天内容是xxx\n"+"时间是:"+ Calendar.getInstance().getTime());
        setResult(2,intent);
        finish();

5.效果:

仓库地址

Andriod: Andriod作业https://gitee.com/chhenming/andriod

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值