【发布时间】:2020-04-14 11:20:29
【问题描述】:
假设您有 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()
}
【问题讨论】:
-
为什么你将监听器从适配器传递给活动,然后你可以处理该事件中的逻辑?
-
@ChuongLeVan 该适配器是搜索片段中 recycleView 中的用户项目视图,因此当用户单击该项目时,它会转到配置文件片段,其他操作将在那里发生。我正在关注 youtube 上关于此的教程,但我的设计与他不同,所以我面临这个问题。
-
在 logcat 中没有错误消息的情况下,您替换片段的逻辑代码是否不起作用?
-
@ChuongLeVan 替换片段的逻辑不起作用应用程序崩溃并且 logcat 说“找不到 id profile_fragment_container 和 ProfileFragment() 的容器”但是上面的意图注释代码正在工作,但我想要片段交易。
-
我发布了我的答案。请试试这个
标签: android android-fragments android-activity