按值而不是位置设置 Spinner 的选择
更新视图且 Spinner 的选择必须与数据库中存储的值匹配时,传统的做法是使用Adapter上的indexOf方法来定位相应的位置。然而,这种方法遇到了障碍,因为 Adapter 没有提供这样的方法。
要克服这一挑战,更合适的方法是利用 ArrayAdapter 的 getPosition 方法。当与合适的 ArrayAdapter 配对时,此方法可以识别与特定值关联的位置。
考虑一个场景,其中名为 mSpinner 的 Spinner 包含“某个值”的值。要定位并比较其位置,请按照以下步骤操作:
从资源文件 R.array.select_state 创建 ArrayAdapter:
ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.select_state, android.R.layout.simple_spinner_item);
设置 Spinner 的适配器和 DropDownViewResource:
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mSpinner.setAdapter(adapter);
接下来,如果要比较的值(compareValue)不为null:
if (compareValue != null) {
int spinnerPosition = adapter.getPosition(compareValue);
mSpinner.setSelection(spinnerPosition);
}
通过采用这种方法,可以根据数据库中存储的值准确设置 Spinner 的选择,从而在视图更新期间提供无缝的用户体验。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3