hon*_*eal 14 android android-preferences
我正在尝试从屏幕中删除首选项,以便在用户使用大于2.2的SDK时不可见.我发现有几个答案说getPreferenceScreen().removePreference(thePreference)会起作用,但每次尝试都会返回FALSE.我在错误的地方使用它吗?我代码中的任何线索?
public class Preferences extends PreferenceActivity implements OnSharedPreferenceChangeListener {
private static final String POLLING_PREFERENCE = "update_frequency_list";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.preferences);
// Get a reference to the preferences
mPollPref = getPreferenceScreen().findPreference(POLLING_PREFERENCE);
//If the SDK is 2.2 or greater do not display polling preferences (using C2DM instead)
if(Build.VERSION.SDK_INT > 7) {
getPreferenceScreen().removePreference(mPollPref);
}
}
....
}
Run Code Online (Sandbox Code Playgroud)
hon*_*eal 48
好吧,我的问题是我的偏好被分成了几个类别,当偏好被分类时,你不能像我们试图做的那样简单地".removePreference".我首先必须引用包含我想删除的首选项的类别,然后从该类别中删除该首选项,如此...
public class Preferences extends PreferenceActivity implements OnSharedPreferenceChangeListener {
private static final String POLLING_PREFERENCE = "update_frequency_list";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.preferences);
// Get a reference to the preferences
mPollPref = getPreferenceScreen().findPreference(POLLING_PREFERENCE);
//If the SDK is 2.2 or greater do not display polling preferences (using C2DM instead)
if(Build.VERSION.SDK_INT > 7) {
PreferenceCategory notificationsCategory = (PreferenceCategory) findPreference("notifications_category");
notificationsCategory.removePreference(mPollPref);
}
}
....
}
Run Code Online (Sandbox Code Playgroud)
我认为这与使用相同的密钥具有多个首选项的能力有关(为了删除正确的密钥).无论如何,谢谢你弗拉基米尔坚持我.没有你,绝对不会找到答案.
小智 5
//remove all preferences
mPollPref = getPreferenceScreen();
mPollPref.removeAll();
//Change language
setApplicationLanguage();
//and rebuild
addPreferencesFromResource(R.xml.preferences);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12632 次 |
| 最近记录: |