2011-02-17 85 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