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

码:

@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

===============>>#1 票数:1 已采纳

有一个名为RecognizerIntent.EXTRA_MAX_RESULTS的标志。 我猜想,您必须在startActivityForResult -call之前执行此操作(来自语音识别示例 ):

// 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);

===============>>#2 票数:0

您可能有一个标志,指示已找到结果:

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。

  ask by user1082770 translate from so

未解决问题?本站智能推荐:

关注微信公众号