我有一个语音识别程序,可以显示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
发布于 2011-12-12 01:21:34
有一个名为RecognizerIntent.EXTRA_MAX_RESULTS的标志。我想在startActivityForResult-call (来自the voice recognition example)之前,你必须这样做:
// 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);发布于 2011-12-12 01:10:07
您可以使用一个标志来指示已经找到了一个结果:
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。
https://stackoverflow.com/questions/8465790
复制相似问题