如何将用户输入的语音命令与硬编码字符串进行比较

How to compare voice command input by user to hard coded strings

我目前正在开发一款通过语音命令接受用户输入的应用程序。该程序使用 google 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;
    }

    }
}

您正在将 String 与 TextView 对象进行比较,而不是直接与数据进行比较。

尝试if( result.get(0).equals("weather") ) { ... }

或至少 if( txtSpeechInput.getText().toString().equals("weather") ) { ... }