首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >刷新微调器

刷新微调器
EN

Stack Overflow用户
提问于 2010-07-04 07:57:57
回答 2查看 4.8K关注 0票数 7

我有一个带旋转器的视野。该活动通过弹出窗口启动另一个活动,在该弹出窗口中,我添加或删除了父对象在微调器中显示的值。因此,在onActivityResult()中,通过调用我的fillSpinner()方法,我刷新了微调器的内容,以便它反映任何附加的或删除的值。此方法的参数是之前选择的值:

代码语言:javascript
复制
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));
    }
}

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

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

换句话说,当我从弹出活动返回时,微调器显示的字符串会发生变化,并且与所选项目不同。

任何想法都是值得感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-04 11:53:32

这个问题,我想,是因为我的光标在每次调用时都被重新创建了。我没有更好的解释。This post间接地给我指明了正确的方向。

通过在最初创建光标后按住它,我能够在更改列表数据后只调用requery(),而不是运行我的问题中的方法。它现在运行得很好。

票数 1
EN

Stack Overflow用户

发布于 2012-03-20 07:21:15

对于这个问题,我找到了一个简单的解决方案:使用表单Spinner.setSelection(int position,Boolean NavigateTo)让微调器显示正确的选定项。

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

祝好运。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3173263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档