目录
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.效果: