Android移动开发第二次作业 Activity的生命周期与跳转
一、功能说明
1、请根据课程内容实现对Activity生命周期的理解,使用log展示生命周期的状态变化;
2、根据博客:https://www.jianshu.com/p/c4cfe38a91ed的内容(进阶篇中的 “点击”),在前次作业的基础上增加列表项的单项点击功能,具体要求是:新建一个新的activity1,recycleview的某一项点击后跳转到这个新的activity1。如:点击新闻列表会跳转到新闻详情页面;
3、实现最新的activityforresult功能,具体要求如下:新建一个新的activity2,在activity1上添加按钮可收到activity2的回传值。如:新闻详情页面中点击收藏按钮可显示当前的收藏数量为N。
二、代码解析
1.新建列表点击功能
@Override public void onBindViewHolder(myviewholder myviewholder, int j) { myviewholder.textView.setText(list.get(j)); myviewholder.textView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(context,ItemActivity2.class); context.startActivity(intent); } }); }
2.新建ItemActivity.java
package com.example.work2; import androidx.activity.result.ActivityResult; import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; public class ItemActivity2 extends AppCompatActivity { private Button button; private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_item2); textView = findViewById(R.id.itemtextview1); button = findViewById(R.id.itembutton); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent=new Intent(ItemActivity2.this,resulteActivity.class); test.launch(intent); } }); } public ActivityResultLauncher test; { test = registerForActivityResult( new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() { @Override public void onActivityResult(ActivityResult result) { if (result.getResultCode() == 888) { Log.d("xr", "onActivityResultLauncher..."); textView.setText(result.getData().getStringExtra("data")); } } }); }
@Override
protected void onStart() {
super.onStart();
Log.d("wcc", "onStart: ");
}
@Override
protected void onStop() {
super.onStop();
Log.d("wcc", "onStop: ");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d("wcc", "onDestroy: ");
}
@Override
protected void onPause() {
super.onPause();
Log.d("wcc", "onPause: ");
}
@Override
protected void onResume() {
super.onResume();
Log.d("wcc", "onResume: ");
}
@Override
protected void onRestart() {
super.onRestart();
Log.d("wcc", "onRestart: ");
}
}
3.配置ItemActivity.java对应的activity_item.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=".ItemActivity2"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" app:layout_constraintStart_toStartOf="parent"> <TextView android:id="@+id/itemtextview2" android:layout_width="match_parent" android:layout_height="81dp" android:text="这是详情界面" android:textSize="48sp" tools:ignore="MissingConstraints" /> <Button android:id="@+id/itembutton" android:layout_width="match_parent" android:layout_height="78dp" android:text="查看课程信息" android:textSize="34sp" tools:ignore="MissingConstraints" /> <TextView android:id="@+id/itemtextview1" android:layout_width="match_parent" android:layout_height="450dp" android:text="这是返回信息" android:textSize="48sp" tools:ignore="MissingConstraints" /> </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout>
4.新建ResultActivity.java
package com.example.work2; import androidx.appcompat.app.AppCompatActivity; import android.annotation.SuppressLint; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import java.util.Calendar; public class resulteActivity extends AppCompatActivity { @SuppressLint("MissingInflatedId") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_resulte); Intent intent =getIntent(); intent.putExtra("data","今天是安卓课程,老师是肖蓉。"+ "上课时间是:"+ Calendar.getInstance().getTime()); setResult(888,intent); finish(); }
@Override
protected void onStart() {
super.onStart();
Log.d("wcc", "onStart: ");
}
@Override
protected void onStop() {
super.onStop();
Log.d("wcc", "onStop: ");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d("wcc", "onDestroy: ");
}
@Override
protected void onPause() {
super.onPause();
Log.d("wcc", "onPause: ");
}
@Override
protected void onResume() {
super.onResume();
Log.d("wcc", "onResume: ");
}
@Override
protected void onRestart() {
super.onRestart();
Log.d("wcc", "onRestart: ");
}
}
5.利用log展现Activity的生命周期变化
@Override
protected void onStart() {
super.onStart();
Log.d("wcc", "onStart: ");
}
@Override
protected void onStop() {
super.onStop();
Log.d("wcc", "onStop: ");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d("wcc", "onDestroy: ");
}
@Override
protected void onPause() {
super.onPause();
Log.d("wcc", "onPause: ");
}
@Override
protected void onResume() {
super.onResume();
Log.d("wcc", "onResume: ");
}
@Override
protected void onRestart() {
super.onRestart();
Log.d("wcc", "onRestart: ");
}
三.运行结果展示




四.Gitee仓库源码
https://github.com/mostimacc/Work2.git

浙公网安备 33010602011771号