2011-02-17 17 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を閉じるか、[OK]ボタンを押して実行できます。

また、あなたはあなたのactivity二つに分けることができ、かつ項目がリストから選択されるたびに、あなたはactivityを終了し、前のactivityに戻ります。

もう1つの解決策は、項目が選択されたらmList.setVisibility(View.Gone)(または実行する内容に応じてView.Invisible)を行うことです。

これらのソリューションはどれも動作可能で、アプリのロジックに最適なものを決める必要があります。 私は助けることを望む

+0

Raukodraugに感謝します。この時点で、私はちょうど既存のListViewを見えないようにする最善の方法を探していた...私が欠けていたものは(View.GONE)だった。非常にありがとう!結局、私はおそらくこれをダイアログに移します。 – ctgScott

+0

@ctgScott np、嬉しいことに:) – raukodraug

+0

私の間違い...ユーザーが2回目に検索を実行することをテストし続けていることに気がつきました。私は今設定しようとしました:mList.setAdapter(null);ユーザーが選択して、それが必要に応じて動作しているように見える後...任意の考えですか? – ctgScott

関連する問題