在Android开发指南中,有一个关于如何实现语音识别的示例。该示例使用数组打印结果列表。
如果我只对第一个结果感兴趣怎么办?
我已经这样实现了(数据是Activity结果返回的Intent):
data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS)获得(0)
还有另一种方法可以在没有获得数组的情况下获得第一个结果吗?有点像getFirst方法吗?
答案 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 "";
}