Android 如何启用/禁用首选项?
我想使我的EditTextPreference不可编辑(如中所示,单击设置页面中的项目时不会发生任何事情)。我该怎么做 这是我的密码:Android 如何启用/禁用首选项?,android,android-preferences,edittextpreference,Android,Android Preferences,Edittextpreference,我想使我的EditTextPreference不可编辑(如中所示,单击设置页面中的项目时不会发生任何事情)。我该怎么做 这是我的密码: <PreferenceCategory android:title="My Account" > <EditTextPreference android:clickable="false" android:focusable="false" android:focusableInTouc
<PreferenceCategory android:title="My Account" >
<EditTextPreference
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false"
android:key="username_pref"
android:summary=" "
android:title="Username" >
</EditTextPreference>
</PreferenceCategory>
您可以通过编程方式或在.xml中执行此操作 XML:
<EditTextPreference
android:enabled="false" >
</EditTextPreference>
getPreferenceScreen().findPreference("yourpref").setEnabled(false);
<Preference
android:key="username_pref"
android:title="Username" >
</Preference>
从Android文档中:
如果禁用了,,首选项将不会处理单击操作
迟交的答复,但根据对已接受答复的评论,似乎有些混乱 我不同意禁用总是不可编辑设置的正确选择。例如,在您的Android设置中:
System->About Phone->Status information
有关于您手机的信息。这些在设置列表中,但不可编辑,这是用户可能需要的重要信息。由于它们从不可从“设置”页面编辑,因此显示为正常的首选项,而不是禁用的EditTextPreference
XML:
<EditTextPreference
android:enabled="false" >
</EditTextPreference>
getPreferenceScreen().findPreference("yourpref").setEnabled(false);
<Preference
android:key="username_pref"
android:title="Username" >
</Preference>
这将使您的首选项可单击但不可编辑。@Rawa-answer帮助了我。我想添加一个动态添加不可编辑首选项的解决方案。例如,我正在添加一个首选项以显示应用程序版本。请确保为首选项类别设置密钥 在
onCreatePreferences
中:
// Add app version preference
val appVersionPref = Preference(context).apply {
title = "App Version"
summary = "v${BuildConfig.VERSION_NAME}"
}
val aboutPrefCategory = findPreference<PreferenceCategory>("YOUR_PREF_CATEGORY_KEY")
aboutPrefCategory?.addPreference(appVersionPref)
//添加应用程序版本首选项
val appVersionPref=首选项(上下文)。应用{
title=“应用程序版本”
summary=“v${BuildConfig.VERSION\u NAME}”
}
val aboutPrefCategory=FindReference(“您的首选类别键”)
aboutPrefCategory?.addPreference(appVersionPref)
请参见下面的结果截图
要禁用单击并使首选项不变暗,请使用以下XML:
<EditTextPreference
android:enabled="false"
android:shouldDisableView="true" />
这是可行的,但现在该项目是“灰色的”。这里是一个是的,当然是。这是不可单击/禁用的项目的Android默认视觉表示(例如,禁用的按钮看起来相同)。我强烈建议(也是为了您的用户)保持这种方式。同意!不要隐藏单击事件。这是一个糟糕的用户界面体验。好吧,听起来很棒!非常感谢你的帮助。看起来让人困惑的部分是标题。