首页 > 解决方案 > 将 SeekBar 添加到 SettingsActivity

问题描述

我想通过调整可以将值保存到变量的方式将 SeekBar 添加到 SettingsActivity。我尝试了不同的方法,但我无法正确使用其中任何一种方法。

我的默认设置活动:

class SettingsActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.settings_activity)
        supportFragmentManager
            .beginTransaction()
            .replace(R.id.settings, SettingsFragment())
            .commit()
        supportActionBar?.setDisplayHomeAsUpEnabled(true)
    }

    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        when (item.itemId) {
            android.R.id.home -> {
                finish()
                return true
            }
        }
        return super.onOptionsItemSelected(item)
    }

    class SettingsFragment : PreferenceFragmentCompat() {
        override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
            setPreferencesFromResource(R.xml.root_preferences, rootKey)
        }
    }
}

还有我的 root_preferences.xml:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">
    <PreferenceCategory
        app:iconSpaceReserved="false"
        app:title="@string/title_activity_settings">
        <SeekBarPreference
            android:defaultValue="40"
            android:key="shuffle_steps_key"
            android:max="100"
            android:summary="summary"
            android:title="title"
            app:defaultValue="true"
            app:iconSpaceReserved="false"
            app:min="10"
            app:showSeekBarValue="true"
            tools:ignore="UnusedAttribute" />
    </PreferenceCategory>
</PreferenceScreen>

PS我试图插入<Preference android:layout="@layout/sliderlayout" />到root_preferences.xml并在SettingsActivity的onCreate添加代码,但应用程序崩溃

标签: javaandroidandroid-studioandroid-fragmentskotlin

解决方案


推荐阅读