2011-11-28 8 views
7

私はリストビューを選択不可能にしたいと思っています。私は、リストアイテムをクリックしたときに発生する色の変化について話しています。コードは以下の通りです。私はアンドロイドの初心者ですので、親切にしてください。このリストビューを選択不可にするにはどうすればよいですか?

から:listitem.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:padding="8px"> 

<TextView 
    android:id="@+id/label" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textColor="#FFFFFF"/> 

<TextView 
    android:id="@+id/data" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="16px"/> 

</LinearLayout> 

から:details.java

TestActionAdapter() { 
     super(TestDetails.this, R.layout.action_list_item, actions); 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     TestAction action = actions.get(position); 
     LayoutInflater inflater = getLayoutInflater(); 
     View view = inflater.inflate(R.layout.action_list_item, parent, false); 
     TextView label = (TextView) view.findViewById(R.id.label); 
     label.setText(action.getLabel()); 
     TextView data = (TextView) view.findViewById(R.id.data); 
     data.setText(action.getData()); 
     return view; 
    } 

答えて

16

ここで答えをチェックアウト:

How to disable list items...

を基本的にArrayAdapterを拡張し、これらを追加2機能:

@Override 
public boolean areAllItemsEnabled() { 
    return false; 
} 

@Override 
public boolean isEnabled(int position) { 
    return false; 
} 
+0

を使用クリックでハイライトするすべての行を防ぐためである場合。早速のお返事ありがとうございます。 –

+2

しかし、アイテム間のセパレータは今消えてしまっています。それらを取り戻す方法はありますか? –

+3

areAllItemsEnabled()メソッドをオーバーライドすると、リストビューディバイダが削除されているように見えるので、ディバイダを保持したい場合はisEnabled(int position)だけをオーバーライドします。 –

0

あなただけreturn viewview.setEnabled(false)に入れgetView(..)方法、からのビューを返します。

+0

私は試しましたが、アイテムをクリックするとまだ色が白く変わります。 –

8

あなたが望むすべてがちょうど働いListView android:listSelector="@android:color/transparent"