android - 如何用另一个活动的片段替换片段?
问题描述
假设您有 2 个活动,第一个活动是主要活动,底部导航栏有 3 个片段作为主页、搜索、通知,第二个活动是包含个人资料片段的个人资料活动。所以现在我在主要活动中有一个按钮,它打算让我分析活动,所以底部导航不是我想要的。
但是现在在搜索片段中,当我搜索用户并点击他的个人资料时,搜索片段应该替换为个人资料片段。我做了这个
profileButton.setOnClickListener {
startActivity(Intent(this@MainActivity, ProfileActivity::class.java ))
}
上面来自 MainActivity 的代码没问题,这就是我想要的,但现在在 UserAdapter 类中,
holder.userItemView.setOnClickListener {
//...some code for sharedPreference
//the below code works for intent but i won't it
// mContext.startActivity(Intent(mContext, ProfileActivity::class.java ))
//I want this but this is not working
(mContext as FragmentActivity).supportFragmentManager.beginTransaction()
.replace(R.id.profile_fragment_container, ProfileFragment()).commit()
}
解决方案
请将您的替换片段逻辑从适配器移动到包含替换容器(profile_fragment_container)的活动。因为在适配器中找不到那个替换容器。
在适配器中单击视图时,您可以通过侦听器进行处理。
希望这有帮助。
推荐阅读
- maven - 我在哪里可以找到使用 JitPack 的 GitHub 版本的正确版本号?
- reactjs - 为子目录强制重定向到 HTTPS
- xml - 需要将label属性带入title
- node.js - 在 Microsoft BotFramework v4 node.js 中使用 Luis 连接对话框
- laravel - Laravel 5.8 带密码重置的电子邮件验证
- scala - 将 Spark 数据帧转换为类似格式的 scala 字典
- spring-hateoas - 为什么 user.get() 方法给我错误?和 idk 如何谷歌
- python - 熊猫数据透视表上的数学计算
- powershell - 我需要在 PowerCLI 中显示一个值及其源主机的名称
- spring-boot - Spring Boot:如何根据配置文件更改注释的值?