微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – 刷新一个微调器

我有一个旋转器的视图.活动通过弹出窗口启动另一个活动,我在其中添加删除父级在Spinner中显示的值.
因此,在onActivityResult()中,我通过调用fillSpinner()方法刷新Spinner的内容,以便它反映任何其他或删除的值.
方法的参数是先前选择的值:
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中的值会发生变化.

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

任何想法都表示赞赏.

解决方法

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

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

祝好运.

原文地址:https://www.jb51.cc/android/314706.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐