我目前正在开发一款通过语音命令接受用户输入的应用。该程序使用谷歌api识别单词。我希望能够将用户语音输入与硬编码字符串进行比较。我的问题是我不知道如何编写这个函数。我正在使用if else语句来匹配硬编码字符串,但Toast始终是错误的。有人可以指导我吗?谢谢你的时间!
/**
* Receiving speech input
* */
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case REQ_CODE_SPEECH_INPUT: {
if (resultCode == RESULT_OK && null != data) {
ArrayList<String> result = data
.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
txtSpeechInput.setText(result.get(0));
if(txtSpeechInput.equals("weather")) {
Toast.makeText(getApplicationContext(), "Good", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(getApplicationContext(), "It's a difficult question... I'm sorry", Toast.LENGTH_SHORT).show();
}
}
break;
}
}
}
答案 0 :(得分:2)
您正在将String与TextView对象进行比较,而不是直接与数据进行比较。
尝试if( result.get(0).equals("weather") ) { ... }
或者至少if( txtSpeechInput.getText().toString().equals("weather") ) { ... }