gpt4 book ai didi

android - 刷新 Spinner

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:58:42 25 4
gpt4 key购买 nike

我有一个带有微调器的 View 。该 Activity 以弹出窗口开始另一个 Activity ,我在其中添加或删除父级在微调器中显示的值。因此,在 onActivityResult() 中,我通过调用 fillSpinner() 方法刷新 Spinner 的内容,以便它反射(reflect)任何附加或删除的值。此方法的参数是先前选择的值:

private void fillSpinner(String value){

Cursor c = mDbHelper.getAllCategories();
startManagingCursor(c);
c.moveToFirst();

String[] from = new String[]{DBAdapter.KEY_CATEGORY};
SimpleCursorAdapter scCats = new SimpleCursorAdapter(
this, android.R.layout.simple_spinner_item,c,from,
new int[]{android.R.id.text1});
scCats.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
category.setAdapter(scCats);

if (value != null && value != "") {
category.setSelection((int)mDbHelper.categoryIndex(value));
}
}

当我打开 Spinner 时,它包含正确的列表(即已刷新)并且选择了正确的值。但是,Spinner 控件本身(处于关闭状态)不显示所选值,而是显示列表中的第一个值。

当我在调试器中逐步执行代码时,微调器值在我调用 setSelection() 之前和之后都是正确的(并且它总是使用相同的正确 ID 调用)。但是,由于我无法退出事件,所以当我在短时间内恢复执行时,Spinner 中的值会发生变化。

换句话说,当我从弹出 Activity 返回时,微调器显示的字符串已更改并且与所选项目不同。

欢迎任何想法。

最佳答案

我找到了解决该问题的简单方法:使用 Spinner.setSelection(int position, Boolean NavigateTo) 形式让 Spinner 显示正确的选定项。

例子:Spin.setSelection(iPos, true);

祝你好运。

关于android - 刷新 Spinner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3173263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com