Activity生命周期与跳转
Activity生命周期与跳转
新建activity
新建ChattingActivity,用作聊天对象的展示页面

---

参数传递
1 public class ChattingActivity extends AppCompatActivity { 2 3 private ActivityChattingBinding binding; 4 @Override 5 protected void onCreate(Bundle savedInstanceState) { 6 super.onCreate(savedInstanceState); 7 setContentView(R.layout.activity_chatting); 8 binding = ActivityChattingBinding.inflate(getLayoutInflater()); 9 setContentView(binding.getRoot()); 10 TextView title = findViewById(R.id.title); 11 Intent intent = getIntent(); 12 String str_title = intent.getStringExtra("title"); 13 title.setText(str_title); 14 }
获取参数
创建intent对象,使用getStringExtra获取参数
参数绑定
使用findViewById获取TextView对象,使用setText绑定参数
页面跳转
1 private void initRecyclerView() { 2 mCollectRecyclerView=binding.chatRecyclerView; 3 mCollectRecyclerAdapter = new myAdapter(getActivity(), chatEntities); 4 //给RecyclerView设置adapter 5 mCollectRecyclerView.setAdapter(mCollectRecyclerAdapter); 6 //设置layoutManager,可以设置显示效果,是线性布局、grid布局,还是瀑布流布局 7 //参数是:上下文、列表方向(横向还是纵向)、是否倒叙 8 mCollectRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false)); 9 //设置item的分割线 10 mCollectRecyclerView.addItemDecoration(new DividerItemDecoration(getActivity(),DividerItemDecoration.VERTICAL)); 11 //RecyclerView中没有item的监听事件,需要自己在适配器中写一个监听事件的接口。参数根据自定义 12 mCollectRecyclerAdapter.setOnItemClickListener(new myAdapter.OnItemClickListener() { 13 @Override 14 public void OnItemClick(View view, ChatEntity data) { 15 //此处进行监听事件的业务处理 16 Toast.makeText(getActivity(),"你点击了我的消息",Toast.LENGTH_SHORT).show(); 17 Intent intent=new Intent(); 18 String title = data.getChatName(); 19 intent.putExtra("title",title); 20 intent.setClass(getActivity(), ChattingActivity.class); 21 getActivity().startActivity(intent); 22 } 23 }); 24 }
点击事件监听
RecyclerView中没有item的监听事件,需要自己在适配器中写一个监听事件的接口。参数根据自定义
在OnItemClick里面写入点击事件
页面跳转
依然是新建Intent对象
通过setClass()设置将要跳转的页面
startActivity实现页面跳转,开启ChattingActivity页面生命周期
参数传递
通过intent对象putExtra()传递参数
这里使用"title"作为key
如果需要传递多个参数,可以使用多个putExtra
实现Activity无跳转传参
效果
点击悬浮球,Toast打印ResultActivity传递过来的参数

"你收藏了本对话"为ResultActivity传递过来的参数
ResultActivity
1 public class ResultActivity extends AppCompatActivity { 2 3 @Override 4 protected void onCreate(Bundle savedInstanceState) { 5 super.onCreate(savedInstanceState); 6 setContentView(R.layout.activity_result); 7 Intent intent = getIntent(); 8 intent.putExtra("result", "你收藏了本对话"); 9 setResult(2, intent); 10 finish(); 11 } 12 }
ChattingActivity接受参数
重写FloatingActionButton点击事件
1 FloatingActionButton floatingActionButton = findViewById(R.id.floatingActionButton); 2 floatingActionButton.setOnClickListener(new View.OnClickListener() { 3 @Override 4 public void onClick(View view) { 5 Intent intent1 = new Intent(ChattingActivity.this, ResultActivity.class); 6 test.launch(intent1); 7 } 8 });
ActivityResultLauncher
1 public ActivityResultLauncher<Intent> test = registerForActivityResult( 2 new ActivityResultContracts.StartActivityForResult(), 3 new ActivityResultCallback<ActivityResult>() { 4 @Override 5 public void onActivityResult(ActivityResult result) { 6 if (result.getResultCode() == 2){ 7 8 FloatingActionButton floatingActionButton = findViewById(R.id.floatingActionButton); 9 floatingActionButton.setBackgroundColor(Color.parseColor("#DAB649")); 10 String notice = result.getData().getStringExtra("result"); 11 Toast.makeText(ChattingActivity.this,notice,Toast.LENGTH_SHORT).show(); 12 } 13 } 14 } 15 );

浙公网安备 33010602011771号