如何在Android(Kotlin)上打开(输入)SettingsFragment或任何片段

如何在Android(Kotlin)上打开(输入)SettingsFragment或任何片段,kotlin,Kotlin,我正在学习Android编程,我不知道当点击按钮时如何打开设置片段 此片段不在导航地图中,因此无法在导航中连接它们并使用findNavController()。导航(actionFromTo) 如《开发者指南》所述: 我已经创建了片段: class PreferencesFragment : PreferenceFragmentCompat() { override fun onCreatePreferences(savedInstanceState: Bundle?, r

我正在学习Android编程,我不知道当点击按钮时如何打开设置片段

此片段不在导航地图中,因此无法在导航中连接它们并使用
findNavController()。导航(actionFromTo)

如《开发者指南》所述:

我已经创建了片段:

    class PreferencesFragment : PreferenceFragmentCompat() {
       override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
           setPreferencesFromResource(R.xml.preferences, rootKey)
       }
    }
我需要在“单击侦听器”中编写什么来输入设置片段

单击侦听器是:

binding.buttonSettings.setOnClickListener {
}
我已尝试使用《开发者指南》中的代码:

binding.buttonSettings.setOnClickListener {
            val fragmentManager: FragmentManager? = activity?.supportFragmentManager
            fragmentManager?.beginTransaction()?.replace(R.id.preferencesFragment, PreferencesFragment())?.commit()
        }
但按下按钮时程序崩溃,出现错误:

找不到


问题似乎是要替换的内容ID,因此需要传递要替换的当前内容ID 请参阅下面的代码,使用android.R.id.content而不是R.id.preferencesFragment

binding.buttonSettings.setOnClickListener {
            val fragmentManager: FragmentManager? = activity?.supportFragmentManager
            fragmentManager?.beginTransaction()?.replace(android.R.id.content, PreferencesFragment())?.commit()
        }