比较 Speech To Text 中的短语和 IF 语句中的短语

Compare phrase from Speech To Text and phrase from IF statement

我正在尝试比较来自 TTS 的短语和来自 IF 语句的短语。如果来自 TTS 的短语等于来自 IF 语句的短语,则它必须出现在 TextView 中。如果没有,则不出现。我尝试这样做,但 If 语句有问题。即使短语相等或不相等,它也不会出现。

public class MainActivity extends AppCompatActivity implements View.OnClickListener {


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button recognizeButton = (Button)findViewById(R.id.button1);
    recognizeButton.setOnClickListener(this);
}

@Override
public void onClick(View v) {
    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
    intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "You may speak!");
    intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 1);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.ENGLISH);
    startActivityForResult(intent, 1);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == 1 && resultCode == RESULT_OK) {
        ArrayList<String> results;
        results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
            TextView speechText = (TextView) findViewById(R.id.textView1);
        //if (results.equals("car")) {
            speechText.setText(results.toString());
     //   }
    }
}

}

您正在比较一个字符串数组和一个字符串,请尝试类似的操作:results.get(0).equals("car"),首先确保 results 不为空.

类似于:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){

    if (requestCode == 1 && resultCode == RESULT_OK) {
        ArrayList<String> results;
        results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
            TextView speechText = (TextView) findViewById(R.id.textView1);
        if (results != null && results.size() > 0 && results.get(0).equals("car")) {
            speechText.setText(results.toString());
        }
    }
}