2009-08-07 4 views
4

Androidでは、ユーザーにリストを提示したいと思います。リストの項目が選択されると、何らかのアクションが実行され、このリスト項目は選択できなくなります。また、次回にリストが表示されたときに選択できないことを示すために、「グレー表示」または同様のものである。私はアダプタでisSelectable()オーバーライドを見てきましたが、これはアイテムが視覚的な問題を引き起こすセパレータとして扱われると考えています。そして私はアイテムを「グレーアウト」する方法を見つけていない。何か案は?ありがとう...「グレイアウトされた」アイテムのAndroidリスト

答えて

2

ビューを無効にする必要があります。ビューを作成している場合は、トップビューで.setDisabled(boolean)を呼び出してください。リスト項目を無効にする設定は、私の経験ではうまくいきません。

2

ここに私が使用している解決策があります。私はListViewのOnItemClickListenerを設定しました。リスト内の項目がクリックされると、渡されたビューを受け取り、setEnabled(false)を呼び出します。これによりアイテムがグレー表示されます。ただし、このアイテムを次にクリックすると、引き続きonItemClickメソッドが呼び出されます。したがって、アイテムが有効/無効になっている場合は、そのクリックごとにチェックを行い、それに応じて行動する必要があります。

8

項目をグレー表示する限り。私はこれが最善の方法であるかどうかわからないんだけど、それは私が何をすべきかです:私は基本的にアイテムを透明にすることと、その後グレーに背景色を設定してい

view.setAlpha(75); 
view.setBackgroundColor(Color.GRAY); 

。あなたは、リスト項目を再利用している場合、条件が満たされていない場合、あなたはまた、元の状態にそれらをバックに変更する必要があり、すなわち:、あなたの元の状態には何の透明性と背景色ではなかった場合だった白である

view.setAlpha(255); 
view.setBackgroundColor(Color.WHITE); 

+0

注:ビューは、setAlphaをサポートするAndroidビューでなければなりません。そのようなビューの1つの例はImageViewです。 –

+0

ViewクラスのsetAlpha(float)は、11のAPIレベルからのみ使用できます。 http://developer.android.com/reference/android/view/View.html#setAlpha(float) –

+6

setAlphaの範囲は0〜1です。255などの値は意味をなさないものです。 – OneWorld

関連する問題