2011-12-28 16 views
0

私はこのような一般的な問題を抱えていましたが、まだ解決できません。アプリケーションのアクティビティが開始されると、デバイスはデフォルトでタッチモードになります。ListViewの項目をsetFocusableInTouchModeで選択できません(真)

私は、ユーザーがいくつかのボタンをタップしたときに、いくつかのリストビュー項目の選択を実装し、それのために次のコードを使用する:自身の先頭に

... 
       // my activity, inside onCreate() 
       myListView.setFocusable(true); 
       myListView.setFocusableInTouchMode(true); 

       button.setOnClickListener(
        new OnClickListener { 

         public void onClick(View v) { 
          myListView.setSelection(specifiedPosition); 
         } 
        } 
       ); 
       ... 

しかし、たとえ、このロジックのListViewとだけ設定し、指定された項目をし、それらを強調表示しません。

私もrequestFocus()を使用しようとしましたが、それは私を助けませんでした。どうすればこの問題を解決できますか?

答えて

0

短い答え:setSelectionはあなたが望むことをしません - それは別のことを意味します。

setSelectionのドキュメントによると:タッチモードでは、項目が選択されることはありませんが、それはまだ が適切に配置されている場合

これは、位置情報が表示される理由です。

、タッチモードのドキュメントを参照してください。タッチモードで http://developer.android.com/resources/articles/touch-mode.html

を、何のフォーカスと選択範囲がありません。ユーザが タッチモードを入力すると、選択した項目 がグリッド内のリストに選択されなくなります。同様に、 ユーザーがタッチモードに入ると、フォーカスされたウィジェットはすべて非表示になります。下の画像は、ユーザーがトラックボールでアイテムを選択した後にリストに触れるとどうなるかを示しています。可能な解決策については


次の記事を参照してください。 Highlight ListView selected row