androidx-在活动中实现androidx首选项Kotlin

问题描述

目标是什么

我当前正在使用一个应用程序,该应用程序有一个设置屏幕,其中包含一个recyclerview。在项目单击时,此recyclerview会打开相对活动,这是“设置”的子菜单(下面的代码)。在新打开的活动中,我想使用实现androidx.prefrence的首选项屏幕来实现。

出了什么问题

为此,我跟随this video。在此视频中,他们使用PreferenceFragmentCompact设置了首选项屏幕。这样做的问题是,我们正在建立一个新的活动,然后建立一个新的片段,在我的应用程序中这效率不高,因为我只是用活动来建立我的设置。

考虑到这一点,是否可以在不使用片段的情况下在活动中设置“首选项”屏幕?如果是这样,怎么办?

代码

class ActivitySettings : AppCompatActivity(),AdapterSettings.OnItemClickListener {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_settings)

        topToolbarBack.setNavigationOnClickListener {
            finish()
        }

        val settingsList = listof(
            DataItemsSettings(getString(R.string.look),getString(R.string.lookdescription),R.drawable.ic_colored_color_lens),DataItemsSettings(getString(R.string.playing),getString(R.string.playingdescription),R.drawable.ic_colored_view_carousel),DataItemsSettings(getString(R.string.images),getString(R.string.imagesdscription),R.drawable.ic_colored_image),DataItemsSettings(getString(R.string.audio),getString(R.string.audiodescription),R.drawable.ic_colored_volume_up),DataItemsSettings(getString(R.string.other),getString(R.string.otherdescription),R.drawable.ic_colored_shape),DataItemsSettings(getString(R.string.about),getString(R.string.aboutdescription),R.drawable.ic_colored_info)
        )

        val adapter = AdapterSettings(settingsList,this)
        rvSettings.adapter = adapter
        rvSettings.layoutManager = linearlayoutmanager(this)

    }

    override fun OnItemClick(position: Int) {
        when(position) {
            0 -> this.startActivity(Intent(this,ActivitySettingsLook::class.java))
            1 -> this.startActivity(Intent(this,ActivitySettingsPlaying::class.java))
            2 -> this.startActivity(Intent(this,ActivitySettingsImages::class.java))
            3 -> this.startActivity(Intent(this,ActivitySettingsAudio::class.java))
            4 -> this.startActivity(Intent(this,ActivitySettingsOther::class.java))
            5 -> this.startActivity(Intent(this,ActivityAbout::class.java))
        }
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)