2016-07-28 71 views
0

listviewの一部のアイテムは、特定の状況で無効にする必要があります。無効になっている場合は、グレー表示され、クリックできなくなります。無効にする必要のある位置は、positions_to_disableというArrayListに格納されます。クリックしてグレーアウトを無効にするリストビューのアイテム[Android]

私は正常にこのタスクの一部を行っている:私は​​

@Override 
public boolean isEnabled(int position) { 

     for (int j = 0; j < FromWhereActivity.positions_to_disable.size(); j++) { 
      if (position == FromWhereActivity.positions_to_disable.get(j)) { 
       return false; 
      } 
     } 
    return super.isEnabled(position); 
} 

しかし、アダプタのメソッドをオーバーライドすることにより、これらの項目の無効クリックを持って、私はそれらを灰色にする方法を発見していません。私がアダプタのメソッドView getView(int i, View view, ViewGroup viewGroup)をオーバーライドして同じことをしようとすると、スクロールするときに灰色の項目が増えてしまいます。 この問題を解決するにはどうすればよいですか?あなただけの障害者のための別の色を持っているStateListDrawableにリスト項目の背景を設定する必要が

+0

は 'listView'とlastVisibleItemからfirstVisibleItemを取得してくださいを参照してください。私はそれがうまくいくはずだと思う。 – David

答えて

0

<?xml version="1.0" encoding="utf-8"?> 
<selector 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:state_enabled="false" 
     android:drawable="@drawable/list_item_disabled"/> 

    <item 
     android:drawable="@drawable/list_item_normal"/> 

</selector> 

State List | Android Developers

関連する問題