Добавить SeekBar в НастройкиActivity - PullRequest
1 голос
/ 29 февраля 2020

Я хочу добавить SeekBar в SettingsActivity, настроив который я могу сохранить значение в переменной. Я пробовал разные способы, но я не мог сделать это правильно ни с одним из них.

Мои настройки по умолчаниюActivity:

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 и добавить код в onCreate of SettingsActivity, но у меня есть sh приложения

...