要使PreferenceScreen中的某个Preference项变灰,可以通过设置该Preference的enabled属性为false来实现。在PreferenceScreen对应的xml布局文件中,找到需要灰掉的Preference项,添加enabled属性,并设置为false。
例如,假设有一个PreferenceScreen布局文件preference_screen.xml,其中包含一个EditTextPreference项,要使该项变灰,可以如下设置:
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 其他Preference项 -->
<EditTextPreference
android:key="example_preference"
android:title="Example Preference"
android:enabled="false"/>
<!-- 其他Preference项 -->
</PreferenceScreen>
在代码中加载该布局文件,并显示PreferenceScreen时,该EditTextPreference项就会以灰色字体显示,并且无法与用户交互。
public class MyPreferenceActivity extends PreferenceActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preference_screen);
}
}
注意:使用PreferenceScreen需要在AndroidManifest.xml文件中声明该Activity。
<activity
android:name=".MyPreferenceActivity"
android:label="My Preferences"
android:theme="@style/PreferenceTheme"/>