AndroidX偏好收听长按
我使用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
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>