2015-01-14 5 views
0

사용자가 목록보기에서 항목/행을 선택하면 특정 색상 (예 : 배경색이 변경되어야 함)으로 선택/강조 표시되어야합니다. 내 MyActivity.xml에서Android : ListView 다중 선택이 작동하지 않습니다.

:

<LinearLayout 
     android:id="@+id/linlay1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/myblackimage" > 
... 
      <ListView 
       android:id="@+id/listview1" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:choiceMode="multipleChoice" 
       android:drawSelectorOnTop="true" 
       android:listSelector="@drawable/list_item_selector"> 
      </ListView> 
... 

list_item_selector.xml이리스트 뷰의 항목/행을 사용

<selector xmlns:android="http://schemas.android.com/apk/res/android" 
android:exitFadeDuration="@android:integer/config_mediumAnimTime"> 

<item android:drawable="@android:color/darker_gray" android:state_pressed="true"/> 
<item android:drawable="@android:color/background_light" android:state_activated="true"/> 
<item android:drawable="@android:color/darker_gray"/> 

</selector> 

item.xml (나는이 생각 선택에 따라 배경색을 변경해야하는 것입니다.)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:onClick="itemPicked" 
    android:orientation="vertical" 
    android:padding="5dp" > 

     <TextView 
     android:id="@+id/item_orderno" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:textColor="#FFFFFF" 
     android:textAppearance="@android:style/TextAppearance.Medium" 
     /> 

    <TextView 
     android:id="@+id/item_ordername" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:textColor="#FFFFFF" 
     android:textAppearance="@android:style/TextAppearance.Small"/> 

</LinearLayout> 

MyActivity.java :

private MyAdapter myAdt; 
private ArrayList myArrayList; 
... 
protected void onCreate(Bundle savedInstanceState) { 
ListView myListView1 = (ListView) findViewById(R.id.listView1); 
... 
myAdt = new MyAdapter(this, myArrayList); 
myListView1.setAdapter(myAdt); 
... 
} 

내가 목록보기에 항목/행을 클릭, 행은 모든 색상을 변경하지 않습니다.
여기서 내가 뭘 잘못하고 있니?

+0

아이템 레이아웃을 추가 할 수 있습니까? – quinnjn

+0

quinnjn> item.xml을 추가했습니다. 친절하게 ... 감사합니다. – Jasper

+0

hmmm 나는 같은 문제가있었습니다 ... [Checkable] (http://developer.android.com/reference/android)을 구현하여 문제를 해결했습니다. /widget/Checkable.html) 인터페이스를 사용하고이 클래스를 행 레이아웃의 루트로 사용 (CheckableXXXXLayout 클래스 만들기) SDK의 샘플 폴더에 샘플 응용 프로그램이 있어야합니다 (CustomChoiceList 또는 기타) – Selvin

답변

0

나는이 문제를 추측은 기본 및 프레스 상태가

<item android:drawable="@android:color/darker_gray"/> 

<item android:drawable="@android:color/darker_gray" android:state_pressed="true"/> 

그들이 다른하고이

처럼 또 하나의 상태, 선택 무언가를 추가하는 것과 동일한 당김 배경을 가지고 list_item_selector.xml 노트에
<selector xmlns:android="http://schemas.android.com/apk/res/android" 
    android:exitFadeDuration="@android:integer/config_mediumAnimTime"> 

     <item android:drawable="@android:color/darker_gray" android:state_pressed="true"/> 
     <item android:drawable="@android:color/darker_gray" android:state_selected="true"/> 
     <item android:drawable="@android:color/background_light" android:state_activated="true"/> 
     <item android:drawable="@android:color/background_light"/> 

</selector> 

이 경우 작동하지 않을 수 있습니다. remove state_activated

외에 무엇보다도 my_activity.xml에서이 줄을 제거

android:listSelector="@drawable/list_item_selector" 

하고 item.xml의 항목을 근절하기 위해이 줄을 추가 (또한 XML 남에있는 모든 lowcase 문자가 있는지 확인)

android:background="@drawable/list_item_selector" 

이렇게 보입니다.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:onClick="itemPicked" 
android:orientation="vertical" 
android:padding="5dp" 
android:background="@drawable/list_item_selector" > 
+0

이것은 도움이되지 않았습니다 ... :( – Jasper

+0

를 제거한 후에도? – Vilen

+0

예 state_activated 항목을 제거한 후에도 ... pls item.xml을 봅니다. 목록보기의 개별 행 - 문제가있는 곳의 위치 일 수 있습니다. – Jasper

관련 문제