if else actions / array

时间:2015-11-20 22:46:22

标签: java android arrays

我的应用程序中有谷歌语音识别功能。

现在我正试图通过声音开始行动 这是我的onActivityResult

中的代码
  @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
            ArrayList<String> matches = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
            // add commands


        }
        super.onActivityResult(requestCode, resultCode, data);
    }

所以我将从数组'匹配'中获取关键字。那么'匹配'的数组应该是这样的吗?

String[] matches = {"rotate","rotate clockwise"};
两行代码上的

'匹配'都是灰色的,并且表示从不使用它们。

然后回到onActivityResult。我应该如何为行动制作代码。像这样的东西?

  if ("closer".equalsIgnoreCase(command.getText().toString())) {
 PUT CODE HERE
}

但该代码适用于editText,如何修改它以使用google语音。

1 个答案:

答案 0 :(得分:0)

您可以遍历已接收的数组并检查是否存在匹配值。

例如:

if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {

   ArrayList<String> matches = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);

    if(isStringMatch("closer", matches)){
      // String match => execute your code
    }

}

这是isStringMatch()方法:

private boolean isStringMatch(String str, ArrayList<String> list){

  for(int i=0; i<list.size(); i++){
     if(str.equalsIgnoreCase(list.get(i))){
        return true;
     }
  }

  return false;
}