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 );
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)