我最近创建了一个应用程序,它从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();)
答案 0 :(得分:0)
如果它在模拟器上运行但在您的设备中不起作用,则必须与设备的数据存在一些差异。确保您没有与空白字符串或其他非EditText相关问题进行比较。
答案 1 :(得分:-1)
您想使用AutoCompleteTextView。它使用适配器将输入与可能的建议相匹配。