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

이미 문자열의 목록이 있기 때문에 어댑터/목록보기를 통해 갈 필요가 작동하지 않을 수 있습니다.

변경

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

String info = matches.get(0); 

에 내가 당신이하려고하는 이해하는 것입니다 목록에서 첫 번째 항목을 얻을 것이다.

+0

나는 목록에서 내 단어 "안녕하세요"를 찾고 싶다. ... 나는 그것을 바꾼다 그러나 어떤 토스트도 표시하지 않는다. .. 안녕 단어는 목록 안에있다. ... – user2342687

+1

시도해보십시오 if (matches.contains ("Hello")) {//당신의 건배하세요}' –

+0

감사합니다! – 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

관련 문제