AndroidX偏好收听长按

AndroidX偏好收听长按,android,androidx,android-preferences,preferencefragment,Android,Androidx,Android Preferences,Preferencefragment,我使用AndroidX首选项库构建应用程序设置。我试图捕捉一个关于偏好的长新闻事件,但我不确定这是否可能,也没有成功。下面是使用setOnPreferenceClickListener()捕获单击的设置。如何为长按添加侦听器 build.gradle (Module: app) ... implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'androidx.constraintlayout:constraintla

我使用AndroidX首选项库构建应用程序设置。我试图捕捉一个关于偏好的长新闻事件,但我不确定这是否可能,也没有成功。下面是使用
setOnPreferenceClickListener()
捕获单击的设置。如何为长按添加侦听器

build.gradle (Module: app)
...
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'androidx.preference:preference:1.1.1'
...
SettingsActivity.kt
类设置活动:AppCompatActivity(),PreferenceFragmentCompat.OnPreferenceStartFragmentCallback{
...
类设置片段():PreferenceFragmentCompat(){
重写FunonCreatePreferences(savedInstanceState:Bundle?,rootKey:String?){
setPreferencesFromResource(R.xml.root\u首选项,rootKey)
FindReference(“myPreference”)?。设置首选项单击侦听器{
//我的首选项已被单击
}
//在此处为myPreference设置长按侦听器
}
}
...
}
root\u preferences.xml
MainActivity.kt

class MainActivity : AppCompatActivity() {
    private lateinit var settingsButton: ImageButton

    override fun onCreate(savedInstanceState: Bundle?) {
        ...
        settingsButton = findViewById(R.id.settingsButtonMain)
        settingsButton.setOnClickListener {
            settingsClicked()
        }
        ...
    }

    private fun settingsClicked() {
        val settingsIntent = Intent(this, SettingsActivity::class.java)
        startActivity(settingsIntent)
    }
}
SettingsActivity.kt

class SettingsActivity : AppCompatActivity(), PreferenceFragmentCompat.OnPreferenceStartFragmentCallback {
    ...
    class SettingsFragment() : PreferenceFragmentCompat() {

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

            findPreference<Preference>("myPreference")?.setOnPreferenceClickListener {
                //myPreference was clicked
            }

            //Set long press listener here for myPreference
        }
    }
    ...
}
root_preferences.xml

<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceCategory app:title="App Settings">
        <Preference
            app:key="myPreference"
            app:summary="Click or Long press for different actions"
            app:title="Preference Example" />
    </PreferenceCategory>
</PreferenceScreen>