首页 > 解决方案 > 如何用另一个活动的片段替换片段?

问题描述

假设您有 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()
            }

标签: androidandroid-fragmentsandroid-activity

解决方案


请将您的替换片段逻辑从适配器移动到包含替换容器(profile_fragment_container)的活动。因为在适配器中找不到那个替换容器。

在适配器中单击视图时,您可以通过侦听器进行处理。

希望这有帮助。


推荐阅读