AS类微信界面(10.21更新)

目录

一、作业目标

二、效果展示

三、log展示生命周期状态变化

           1、代码:

2、实现及分析

四、recycleview中实现点击跳转

           0、跳转效果

1、在adapter.java中设置onClick()

2、跳转页面:detailedActivity.java

3、跳转页面UI-activity_detailed.xml

五、实现Activityforresult功能

0、回传效果

1、ButResActivity.java中实现回传

2、detailedActivity.java中实现接收

六、仓库地址


一、作业目标

        1、用log展示生命周期的状态变化。实现对Activity生命周期的理解;

        2、实现在recycleview中点击后跳转;

        3、实现最新的Activityforresult功能,点击按钮后收到回传值;


二、效果展示


三、log展示生命周期状态变化

1、代码:

        以detailedActivity.java为例,查看onCreate()、onPause()、onStop()、onDestory()、onRestart、onResume()函数被调用的生命周期:

super.onCreate(savedInstanceState);
        Log.d("AC","detailedActivity onCreate");
@Override
    protected void onPause() {
        super.onPause();
        Log.d("AC","detailedActivity onPause");
    }
    @Override
    protected void onStop() {
        super.onStop();
        Log.d("AC","detailedActivity onStop");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.d("AC","detailedActivity onDestroy");
    }
    @Override
    protected void onRestart() {
        super.onRestart();
        Log.d("AC","detailedActivity onRestart");
    }
    @Override
    protected void onResume() {
        super.onResume();
        Log.d("AC","detailedActivity onResume");
    }

2、实现及分析

        首先,进入初始界面:

这时:

       ① MainActivityonCreate:程序刚刚被创建完成

       ② MainActivityonResume:进入了可以与用户交互的模式

接着,任意点击一个recycleview中的文字,跳转到详情页面:

这时:

          ①MainActivityonPause():被暂停,不能执行任何代码

          ②detailedActivityonCreate:程序刚刚被创建完成

          ③detailedActivityonResume:进入了可以与用户交互的模式

          ④MainActivityonStop():被隐藏

然后,点击页面上的bottom:

这时:

        ①detailedActivity被暂停,不能执行任何代码;

        ②ButResActivity被创建完成;

        ③detailedActivity重新进入可以与用户进行交互的状态;

        ④Activityforresult传值完成后,ButResActivity被摧毁;

再次点击当前页面的bottom,可以刷新显示时间:

 对此,该Activity生命周期分析同上。

 最后,点击返回键,回到最初的recycleView:

这时:

          ①detailedActivityonPause:先被暂停

          ②MainActivityonRstart:被重启

          ③MainActivityonResume:进入可以与用户交互的状态

          ④detailedActivityonStop:被隐藏

          ⑤detailedActivityonDestory:被摧毁


四、recycleview中实现点击跳转

0、跳转效果

1、在adapter.java中设置onClick()

        在点击任意文字后,会将该文字,与该文字对应的图片id传给intent,实现对应图片的调用。

 holder.textView.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Bundle bundle = new Bundle();
                bundle.putString("text",text);
                //将图片的id传递过去
                bundle.putInt("img",img);
                Intent intent = new Intent(rec_context,detailedActivity.class);
                intent.putExtras(bundle);
                rec_context.startActivity(intent);

            }
        });

2、跳转页面:detailedActivity.java

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        Log.d("AC","detailedActivity onCreate");
        setContentView(R.layout.activity_detailed);
        Intent intent = getIntent();
        Bundle bundle = intent.getExtras();
        det_text=findViewById(R.id.det_text);
        det_textView=findViewById(R.id.det_textView);
        det_imageView=findViewById(R.id.det_image);
        String text = bundle.getString("text");
        int image = bundle.getInt("img");
        det_textView.setText(text);
        det_imageView.setImageResource(image);
        if (getSupportActionBar()!=null)
        {
            getSupportActionBar().hide();
        }
        det_button=findViewById(R.id.det_button);
        det_button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(detailedActivity.this,ButResAcitvity.class);
                test.launch(intent);
            }
        });

3、跳转页面UI-activity_detailed.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".detailedActivity">

    <TextView
        android:id="@+id/det_textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="detail"
        android:textSize="40sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.529" />

    <Button
        android:id="@+id/det_button"
        android:layout_width="147dp"
        android:layout_height="106dp"
        android:text="Click Me!    点我显示时间"
        android:textSize="17sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/det_textView"
        app:layout_constraintVertical_bias="0.431" />

    <ImageView
        android:id="@+id/det_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toTopOf="@+id/det_textView"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.354"
        tools:srcCompat="@tools:sample/avatars" />

    <TextView
        android:id="@+id/det_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="根据你的点击来源:"
        android:textSize="30sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.422" />
</androidx.constraintlayout.widget.ConstraintLayout>

五、实现Activityforresult功能

0、回传效果

1、ButResActivity.java中实现回传

        点击按钮后,会回传当前时间,并修改部分UI字体,显示时间后再次点击会刷新时间。

        其中,设置resultcode为666,显示时间的textview的id为data,显示“当前时间为:”的textview的id为data_C。

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        Log.d("AC","ButResAcitvity onCreate");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_but_res_acitvity);
        Intent intent=getIntent();
        intent.putExtra("data", new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new java.util.Date()));
        intent.putExtra("data_C","当前时间为:");
        setResult(666,intent);
        finish();
    }

2、detailedActivity.java中实现接收

 public ActivityResultLauncher test= registerForActivityResult(
            new ActivityResultContracts.StartActivityForResult(),
            new ActivityResultCallback<ActivityResult>() {
                @Override
                public void onActivityResult(ActivityResult result) {
                    if(result.getResultCode()==666){
                        det_textView.setText(result.getData().getStringExtra("data"));
                        det_text.setText(result.getData().getStringExtra("data_C"));
                    };
                }
            }
    );

六、仓库地址 

我是仓库库库库库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值