获得Google语音识别的第一个结果

时间:2011-04-21 10:46:07

标签: android

在Android开发指南中,有一个关于如何实现语音识别的示例。该示例使用数组打印结果列表。

如果我只对第一个结果感兴趣怎么办?

我已经这样实现了(数据是Activity结果返回的Intent):

  

data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS)获得(0)

还有另一种方法可以在没有获得数组的情况下获得第一个结果吗?有点像getFirst方法吗?

2 个答案:

答案 0 :(得分:2)

getStringArrayListExtra()返回的对象是一个ArrayList,它不提供getFirst()调用。您可以调用iterator()并通过next()获取第一个条目,但get(0)可能会更高效,因为它是一个普通的数组访问对比创建对象。

答案 1 :(得分:2)

不,api没有指定某种getFirst方法。

如果你在不同的地方使用它,你可以自己创建一个,进行空检查并返回第一个结果:

public String getFirst(Intent data){
    List<String> results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
    if(results != null && results.size() > 0){
        return results.get(0);
    }
    return null; //or maybe: return "";
}