protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
if (requestCode ==check && resultCode == RESULT_OK){
ArrayList<String> results =data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
lv.setAdapter(new ArrayAdapter <String>(this ,android.R.layout.simple_list_item_1,results));
TextView display=(TextView)findViewById (R.id.TOF);
String what_you_say = lv.getContext().toString();
if (what_you_say.contentEquals("hi") == true)
display.setText("True");
else
display.setText("false");
}
答案 0 :(得分:0)
what_you_say.equals("hi")
应该有效。另外,最好不要在你检查的东西上假设套管(除非你想要特定的情况)。所以你应该做what_you_say.equalsIgnoreCase("hi")
答案 1 :(得分:0)
替换此行:
if (what_you_say.contentEquals("hi") == true)
使用另一行:
if (what_you_say != null && what_you_say.trim().equalsIgnoreCase("hi"))
在这种情况下,您对简单的字符串相等感兴趣,但最好采取一些额外的预防措施:考虑字符串为null的情况,在开头和结尾删除多余的空格,并忽略大小写通常救命。要查看内容平等的差异,请参阅此post。
答案 2 :(得分:0)
您应该按如下方式更改if语句:
if ("hi".equals(what_you_say))
或
if ("hi".equalsIgnoreCase(what_you_say))
取决于您是否需要检查区分大小写。
您应该始终以这种方式进行字符串比较,因为它将是空的。
请使用以下代码段:
if ("hi".equals(what_you_say)) // what_you_say is null will evaluate to false
if (what_you_say.equals("hi")) // what_you_say is null will cause NullPointerException
最好将if语句评估为false而不是导致NullPointerException
。