android-从ListPreference删除数组项
作者:互联网
我的首选项活动中有一个加速度计模式的列表首选项,我纯粹是从xml加载的.如果用户设备没有或不支持加速度计,我将不会完全删除阵列中的物品.我是否需要为此选项创建一个单独的列表首选项才能将其删除? (我希望将它们全部合而为一.)如何通过以下设置将其删除?
谢谢你的提示.
杰森
<string-array name="mode_text">
<item>Others Modes</item>
<item>Others Modes</item>
<item>Accelerometer Mode</item>
</string-array>
<string-array name="mode_values">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
</resources>
解决方法:
当您说要“完全删除数组中的项”时,是否意味着您希望ListPreference不显示在PreferenceScreen中?还是想让它在尝试获取设置值时返回空值?
好吧,我现在明白了.我认为您不能只删除数组中的那个项目.您必须以编程方式为ListPreference的entry和entryValues设置新数组.
您可以通过其键找到ListPreference.
这是一个例子:
if (accelerometerNotSupported) {
ListPreference accelMode = (ListPreference) findPreference("acceleratorMode");
accelMode.setEntries(new String[]{"Others Modes","Others Modes"});
accelMode.setEntryValues(new String[]{"0", "1"});
}
这会将您的列表偏好设置更改为仅具有这两个选项.
标签:listpreference,accelerometer,android 来源: https://codeday.me/bug/20191102/1993369.html