2011-06-22 6 views
3

リストビュー(onListItemClick)の行を選択すると、その行が選択された状態になります(デフォルトでは黄色です)。フラグのリストビュー

私はHoneyCombではありません。アンドロイドとの互換性のあるjarであるandroid-support-v4.jarを使用しています。

HoneyComb(http://www.youtube.com/watch?v=5swwUeZ0-ww)のGmailのようなアスペクトに、青色を維持するために選択されたアイテムが分かっていることを伝えたいと思います。

私がしたいことは、(HoneyCombの)activatedという新しい状態ですが、他のバージョンの互換性のあるjarファイルでやりたいと思います。

ところで、私はListFragment

感謝を移入するSimpleCursorAdapterを使用しています。コード

list.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> arg0, View view, int position, long id) { 
     view.setBackgroundColor(Color.WHITE); 
    } 
}); 

答えて

2

+0

さて、私はそれを実装することができました。私は、選択されたintをアダプターに追加し、インデックスが選択されている場合に膨張するときにsetBackgroundの色をXPTOに設定し、背景を透明に設定します。 :-) – neteinstein

+0

これは効果がありません。 1つのリスト項目の背景をリフレッシュするために、表示可能なリスト全体をリフレッシュしています。 – Taranfx

1

使用することは、私は、リストのアダプタクラスでこれを実装しました。私はリストに2種類の行を持っていました.1つは普通の行、選択されていない行、もう1つは選択行です。ユーザーがリスト項目を選択すると、その項目に 'selected'を設定するようにアダプタに通知し、.notifyDatasetChanged()を呼び出します。アダプターの.getView()で、現在の項目が選択されているかどうかをチェックし、その行に対応するレイアウトを展開します。

もっと複雑に思えるかもしれませんが、確かに機能します。この方法では、選択した要素についてもアダプタに依頼することができ、この情報を格納するためにアクティビティ内のインスタンス変数を迷う必要はありません。私はこれが少しきれいだと思う。

+0

このコードには問題があります.1つ以上の項目を選択することができます。複数の異なるすべてのボタンを押してください。 – neteinstein

+0

色を変更するコードを追加する必要があります。選択された... – Geoff

+0

つまり、すべての要素をループしますか? – Taranfx