首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Java语音识别只需要1个result.......How就能得到1个结果?

Android Java语音识别只需要1个result.......How就能得到1个结果?
EN

Stack Overflow用户
提问于 2011-12-12 01:02:29
回答 2查看 376关注 0票数 0

我有一个语音识别程序,可以显示5-6个结果。我只希望出现第一个结果。你能帮个忙吗?

代码:

代码语言:javascript
复制
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub


    if (requestCode == check && resultCode == RESULT_OK){
        ArrayList<String> results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
        lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, results));

    }

请给我建议?

谢谢。FlinxSYS

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-12 01:21:34

有一个名为RecognizerIntent.EXTRA_MAX_RESULTS的标志。我想在startActivityForResult-call (来自the voice recognition example)之前,你必须这样做:

代码语言:javascript
复制
// Specify how many results you want to receive. The results will be sorted
// where the first result is the one with higher confidence.
intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 1);

// ...
startActivityForResult(intent,0);
票数 1
EN

Stack Overflow用户

发布于 2011-12-12 01:10:07

您可以使用一个标志来指示已经找到了一个结果:

代码语言:javascript
复制
private boolean flag = false;

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub


    if (!flag && requestCode == check && resultCode == RESULT_OK){
        ArrayList<String> results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
        lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, results));
        flag = true;
    }

一旦在第一个找到的结果中将该标志设置为true,则对于处理程序的任何其他执行,if条件都将为false。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8465790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档