2013-06-19 46 views
0

我想在Android ListView中获取特定的项目。应使用语音识别器功能填充ListView。我怎样才能做到这一点,而不点击自动?我尝试了一些,但没有工作。任何帮助将不胜感激!如何仅在Android ListView中获取特定项目?

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) 
    { 
     // Populate the wordsList with the String values the recognition engine thought it heard 
     ArrayList<String> matches = data.getStringArrayListExtra(
       RecognizerIntent.EXTRA_RESULTS); 
     wordsList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, 
       matches)); 

     String info = wordsList.getItemAtPosition(0).toString(); 

     if(info.indexOf("Hello")>0){ 

      Toast.makeText(getBaseContext(),"OK", Toast.LENGTH_LONG).show(); 

     } 

    } 
    super.onActivityResult(requestCode, resultCode, data); 
} 
+0

首先找出(使用调试器或日志记录)什么不起作用。是否有错误消息(logcat)?包含“匹配”的预期内容? –

+0

没有错误....代码是正确的....?用屏幕颜色测​​试吗?一些例子? – user2342687

回答

1

没有必要去通过适配器/ ListView的,因为你已经有了字符串列表。

变化

String info = wordsList.getItemAtPosition(0).toString(); 

String info = matches.get(0); 

它会得到你的列表中,这是我理解你正在尝试做的第一个项目。

+0

我想从列表中找到我的单词“你好”....我改变它,但没有显示任何烤面包......你好单词是在列表中... – user2342687

+1

尝试'if(matches.contains(“Hello”)){// do your toast}' –

+0

Thanks!It Works !!! – user2342687

0

不可考,但它可以工作

ArrayAdapter<String> ad = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, 
        matches)); 

      String info = ad.getItemAtPosition(0).toString(); 

      if(info.indexOf("Hello")>0){ 

       Toast.makeText(getBaseContext(),"OK", Toast.LENGTH_LONG).show(); 

      } 
+0

我把错误....红色... – user2342687

相关问题