2011-02-17 5 views
1

이 항목은 매우 간단해야합니다. 유스 케이스는 음성 검색의 결과에 의해 생성 된 ListView입니다. 사용자가 목록에서 적절한 항목을 선택하면 목록을 사라지게합니다. 이 목록 (내용)은 다시 필요하지 않습니다. 이 방법은 여러 가지 방법으로 수행 할 수 있다는 것을 알고 있지만 어떤 것이 가장 빠르는지 (모바일 리소스를 사용하여 가장 빠르고, 가장 효율적인지 알기에는 충분히 경험이없는 것 같습니다.) clearChoices(), setVisibility (2) 'Gone '. 어쨌든 나는 적절한 답을 얻기 위해 출처로 갈 것이라고 생각했다.사용자가 항목을 선택한 후 ListView 제거

언제나 감사합니다. 원하는 경우 관련 코드는 다음과 같습니다.

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == VOICE_RECOGNITION_REQUEST_CODE && resultCode == RESULT_OK) { 

     mList = (ListView) findViewById(R.id.list); 

     ArrayList<String> matches = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); 
     mList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, matches)); 

     mList.setTextFilterEnabled(true); 

     mList.setOnItemClickListener(new OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       String description = ((TextView) view).getText().toString(); 
       final EditText etDesc = (EditText) findViewById(R.id.EditDescription); 

       etDesc.setText(description); 
       mList.setVisibility(2); 
      } 
     }); 
    } 
} 

답변

1

글쎄, 나는 무엇을 성취하려고하는지 정확히 알지 못합니다. 목록이 포함 된 Dialog을 작성하여이 문제를 해결할 수 있으며 항목을 누르면 바로 Dialog을 닫을 수도 있고 "확인"버튼을 사용하여 취소 할 수도 있습니다.

또한 activity을 두 개로 나눌 수 있으며 목록에서 항목을 선택할 때마다 activity을 끝내고 이전 activity으로 돌아갈 수 있습니다.

또 다른 해결책은 항목을 선택한 다음 mList.setVisibility(View.Gone) (또는 수행하려는 내용에 따라 View.Invisible)을 수행하는 것입니다.

이러한 솔루션 중 하나라도 효과가 있으며 앱의 로직에 가장 적합한 것이 무엇인지 결정해야합니다. 도와 드리겠습니다.

+0

감사합니다. Raukodraug. 이 시점에서 나는 기존의 ListView를 보이지 않게 만드는 가장 좋은 방법을 찾고 있었다. 내가 놓친 것은 (View.GONE) 뿐이었다. 대단히 고마워! 결국 나는 이것을 대화 상자로 옮길 것이다. – ctgScott

+0

@ctgScott np, 기꺼이 도와주었습니다 :) – raukodraug

+0

내 실수 ... 사용자가 두 번째로 검색을 수행하도록 선택할 수있는 테스트를 계속 한 후 깨달았습니다.이 경우 ListView를 내용과 함께 표시하도록 설정해야합니다. 이제 설정 시도 : mList.setAdapter (null); 사용자가 선택을하고 필요에 따라 작동하는 것처럼 보인 후에 ... 어떤 생각이 들었습니까? – ctgScott

관련 문제