在Android開發指南中,有一個關於如何實現語音識別的例子。該示例使用數組打印結果列表。在Google語音識別中獲得第一個結果
如果我只對第一個結果感興趣該怎麼辦?
我已經實現這種方式(數據是由活動結果返回的意圖):
data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS)獲得(0)
是否有另獲得第一個結果而不獲取數組的方式?像getFirst方法的東西?
在Android開發指南中,有一個關於如何實現語音識別的例子。該示例使用數組打印結果列表。在Google語音識別中獲得第一個結果
如果我只對第一個結果感興趣該怎麼辦?
我已經實現這種方式(數據是由活動結果返回的意圖):
data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS)獲得(0)
是否有另獲得第一個結果而不獲取數組的方式?像getFirst方法的東西?
不,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 "";
}
從getStringArrayListExtra()
返回的對象是ArrayList,它不提供getFirst()調用。你可能請致電iterator()
並通過next()
獲得第一個條目,但get(0)
可能會更有效,因爲它是一個普通的數組訪問,而不是對象創建。