BlackBerry AutoCompleteField - 如何仅接受现有字符串的一部分

时间:2011-12-07 14:37:45

标签: blackberry autocomplete

AutoCompleteField建议可供选择的字符串列表,但我找不到只输入现有字符串的一部分的方法。
例如:在AutoCompleteFieldDemo示例中,我们有一个'month'字段。当我们在该字段中输入'ju'时,我们有一个可用字符串'June'和'July'的列表。当您按“Enter”时 - 选择并接受整个“六月”或“七月”。当您按“返回”按钮时 - 字段将被完全清除 问题是如何接受'ju'作为该字段的最终字符串并转到下一个控件?它是标准控件无法实现的吗?

P.S。实际上这个问题与我的主题here重复。

1 个答案:

答案 0 :(得分:1)

这是解决方案,在尝试了几个小时之后......在论坛中查找并没有成功,我提出了这个解决方案:

final AutoCompleteField autofield = new AutoCompleteField(list){
            public void fieldChanged(Field field,int context){
                super.fieldChanged(field, context);
                if (flag){
                    list.clear();
                    String strings_input[] = new String[1];
                    strings[0] = getEditField().getText();
                    list.addDataSet(0, strings_input, "blah blah",BasicFilteredList.COMPARISON_IGNORE_CASE);
                    list.addDataSet(1, strings_months, "blah blah 2",BasicFilteredList.COMPARISON_IGNORE_CASE);   
                }
            }

            public void onSelect(Object selection, int type){
                 flag = false;
                 super.onSelect(selection, type);
                 getEditField().setText(((BasicFilteredListResult)selection)._object.toString());
                 flag = true;
             }
        };  

这实际上会将您正在键入的文本插入已过滤的列表中,以便您可以从下拉列表中选择它。

希望有所帮助