2013-06-19 87 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

相關問題