当我在Android中将输入类型作为数字时,自动完成功能无效

时间:2011-12-06 10:34:14

标签: android

在我的应用程序中,我使用以下代码

创建了自动完成字段
sugarVariety =  (AutoCompleteTextView)findViewById(R.id.autocomplete_sugarVariety);          
     String[] VARIETY = new String[]{ "118", "119",  "120", "121", "269",    "270",   "271",   "272",  "273",   "346",  "347",   "348", "349",    "350","351",   "352",   "353",    "354",   "355",  "356",  "357", "358",
                "359",  "360", "361", "345", "117",    "266",    "362",    "363",   "364",   "365",   "366",   "367",   "368",  "369",   "370",   "371",  "372",  "373",   "374",   "375",  "376",  "377",
                "378",    "379",    "380",   "239",    "240",   "241",   "242",   "114",  "230", "231",  "101",   "102",  "103", "104",  "108", "111",  "112",  "201",  "202",  "204",  "206",   "207",
                 "208",    "210",   "217",   "218",   "220",  "221",   "226",   "227",  "250", "301",  "302","113", "228",  "0", "246", "999", "205",   "251", "243","268","329", "115", "116", "274"};
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, VARIETY);
     sugarVariety.setAdapter(adapter);  

在我的布局中,我将自动完成文本视图定义为

 <AutoCompleteTextView android:id="@+id/autocomplete_sugarVariety"
    android:layout_width="wrap_content" android:inputType="number"
    android:layout_height="42px"
    android:layout_marginLeft="5dp"/>

问题是如果我提供 inputType =“number”我没有得到数组的自动完成列表如果我删除它然后只有我得到但在我的情况下我想显示键盘只有数字,我也需要自动完成任何人都可以告诉我怎样才能得到这个......

2 个答案:

答案 0 :(得分:0)

盖伊,你做的很奇怪。

在您的情况下,您可以将所有内容强制转换为String。如果有必要,请在之后获取数字,然后再次转为INTLONG。 (JUMP rs)

答案 1 :(得分:0)

您在此处所做的是将AutoCompleteTextView数组设置为输入类型number的{​​{1}}。

因此,将ArrayList<String>更改为ArrayAdapter<Integer>可以解决此问题。

sugarVariety =  (AutoCompleteTextView)findViewById(R.id.autocomplete_sugarVariety);          
Integer[] VARIETY = new Integer[]{ 118, 119, 120, 121, 269, 270};
ArrayAdapter<Integer> adapter = new ArrayAdapter<Integer>(this,
                android.R.layout.simple_dropdown_item_1line, VARIETY);
sugarVariety.setAdapter(adapter);

希望它会有所帮助。