我需要识别器的结果是一个字符串..当我使用这个代码时,我得到了eclipse错误'无法将Array转换为字符串..
code: final ArrayList<String> results2 = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS);
也尝试过,没有运气:
final String results2 = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
仍然说错误..
这个足够的信息吗?提前谢谢。
新:我添加了这段代码,但是我想要一个.get,它会以可接受的方式存储这个单词/文本以用于游标用法:
String[] matches = data.getStringArrayExtra(SpeechRecognizer.RESULTS_RECOGNITION);
Eclipse没有错误,但我的结果是&#39; null&#39;所以我只需要一个.Get在我的场景中工作?比kyou还帮忙!
答案 0 :(得分:0)
这应该适合你:
@Override
public void onResults(Bundle results) {
ArrayList<String> matches = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
[...]
<强> /编辑:强> 对不起,就像我说的,我把它搞混了。你检查过请求代码了吗?通常这应该有效:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK)
{
ArrayList<String> matches = data.getStringArrayListExtra(
RecognizerIntent.EXTRA_RESULTS);
}
super.onActivityResult(requestCode, resultCode, data);
}
然而,这实际上几乎就是您正在使用的代码 - 尽管如此,尽管它最终有super.onActivityResult()
。
答案 1 :(得分:0)
你的代码应该可以正常工作。请参阅以下代码段:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent i = getIntent();
final ArrayList<String> stringArrayListExtra = i.getStringArrayListExtra("hello");
}
你可以看到的是:
我看不到任何其他
编辑:由于没有足够的代码可供查看,您可以自己查看speech sample here
如果看那里:
/**
* Handle the results from the recognition activity.
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == VOICE_RECOGNITION_REQUEST_CODE && resultCode == RESULT_OK) {
// Fill the list view with the strings the recognizer thought it could have heard
ArrayList<String> matches = data.getStringArrayListExtra(
RecognizerIntent.EXTRA_RESULTS);
mList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,
matches));
}
super.onActivityResult(requestCode, resultCode, data);
}
他们正在使用RecognizerIntent.EXTRA_RESULTS
。如果它可以解决您的问题,请尝试此示例。现在你的问题与我最初的看法不同。