Android应用无法识别设备上自动完成的字词

时间:2014-11-18 00:32:27

标签: java android xml

我最近创建了一个应用程序,它从Edittext字段中获取用户输入并将其与预定义的字符串进行比较。在模拟器中,它工作得很完美但是当我把它放在我的Android设备上并在那里进行测试时,它似乎无法识别设备自动完成的单词(即当我输入部分单词建议时填写并选中由我)。当它应该是真的时,它会比较假。

为什么会这样?我可以集成一个xml标签,它会删除编辑文本字段的自动建议功能吗?

这是我的编辑文本xml的样子:

      <EditText
        android:id="@+id/st5ans"
        android:layout_width="@dimen/form_width"
        android:layout_height="@dimen/input_height"
        android:textSize="@dimen/statenamesize"
        android:layout_marginTop="@dimen/maingamespaceing"
        android:layout_toRightOf="@id/state5"
        android:autoText="false"
        android:gravity="center"
        android:layout_below="@id/st4ans"
        android:background="@android:color/white"
        />

我将它们比作这样:

 EditText ans1 = (EditText)findViewById(R.id.st1ans);
        EditText ans2 = (EditText)findViewById(R.id.st2ans);
        EditText ans3 = (EditText)findViewById(R.id.st3ans);
        EditText ans4 = (EditText)findViewById(R.id.st4ans);
        EditText ans5 = (EditText)findViewById(R.id.st5ans);
        EditText[] ans={ans1, ans2, ans3, ans4, ans5};
        int count=0;
        int number=0;
        String feed="";

        //this loop tallys up all of our correct answers and then builds
        // feedback for wrong answers to give to
        //the user, using our data hashmap
            for (EditText y : ans)
            {
                String temp=y.getText().toString();
            if(temp.equalsIgnoreCase(data.get(stats[number%stats.length].getText().toString())))
                {
                    count += 1;
                } else {
                    if (firstpass)
                    {
                        feed += "         The capitol of  " +
                                drawlist.get(drawn.get(number)) + " is " +
                                data.get(drawlist.get(drawn.get(number))) + "  " + "\n";
                    }
                    else
                    {
                        feed += "          "+drawlist.get(drawn.get(number))+
                                " is the capitol of "+
                                data.get(drawlist.get(drawn.get(number))) + "  " + "\n";
                    }
                }

                number += 1;

            }   

temp是Edittext值的字符串(String temp = y.getText()。toString();)

2 个答案:

答案 0 :(得分:0)

如果它在模拟器上运行但在您的设备中不起作用,则必须与设备的数据存在一些差异。确保您没有与空白字符串或其他非EditText相关问题进行比较。

答案 1 :(得分:-1)

您想使用AutoCompleteTextView。它使用适配器将输入与可能的建议相匹配。