要使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"/>