【问题标题】:Blackberry return to the previus position in ListField黑莓返回ListField中的先前位置
【发布时间】:2011-10-16 19:19:10
【问题描述】:

在我的应用程序中,我使用了一个列表。 此列表可以通过从服务器检索更多数据的刷新列表按钮进行更新。 当用户按下刷新按钮时,我的应用程序将最后一个选定的项目放入一个成员字段 -

lastPosition = listField.getSelectedIndex();

更新列表后,我的应用程序使用 -

listField.setSelectedIndex(lastPosition);

用于设置最后一个位置。 但是什么也没发生。

如何“移动”列表的光标以指向 lastPosition? 谢谢, 艾尔。

                listField.setKeyword("");
            listField.v = userVector;               
            listField.updateList(); 
            listField.getResultList();
            listField.setSelectedIndex(lastPosition);
            listField.setFocus();
            Manager manager = listField.getManager();
            int rowHeight = listField.getRowHeight();
            manager.setVerticalScroll(lastPosition * rowHeight);
            listField.invalidate();

【问题讨论】:

    标签: blackberry cursor-position listfield


    【解决方案1】:

    不看代码很难猜出哪里出了问题,但是首先想到的可能是您没有在恢复位置后立即将焦点设置在列表上?如果你不这样做,那就试试吧:

    listField.setSelectedIndex(lastPosition);
    listField.setFocus();
    

    【讨论】:

    • 现在。光标“跳”回到 ListField 中的第一项。
    • 先给listfield设置焦点,然后设置索引怎么样?
    • 好像setSelectedIndex没有效果。
    • @eyal:基础集合是否会在“刷新”操作时改变其大小?如果是,你会打电话给ListField.setSize(newSize)吗(API 说:Invoke this method to reset the number of items in this field, and select the first item in the list.)?当您调用listField.setSelectedIndex(lastPosition) 时,您确定lastPosition 是一个非零值吗?
    • 谢谢。添加 ListField.setSize(newSize) 后它开始工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多