一、要求
1、请在基础门户页面(作业1)的某个tab页面中添加recycleview,例如:新闻列表页面;
2、请在上一列表页面的基础上进行点击跳转设计。比如,某一tab页是新闻列表,则点击某一行能跳转到新闻详情页面。
二.过程
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
返回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.效果:
仓库地址:
https://gitee.com/Jasonnoon/weichat11.githttps://gitee.com/Jasonnoon/weichat11.git