2017-12-12 13 views
0

을 삭제하지 : 항목을 선택하고 다른 하나를 클릭 한 후 변경 내용을 강조 할 때ListView에 다음 XML을, 내가있는 ListView를 선택

<ListView 
    android:id="@+id/tools_bar" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_toStartOf="@+id/sketch_background" 
    android:scrollbars="none" 
    android:choiceMode="singleChoice" 
    android:listSelector="@color/dark_blue"> 
</ListView> 

그것은 강조한다. 그러나 일부 이벤트 (또는 항목을 다시 클릭 할 때)에서 프로그래밍 방식으로 해당 선택 사항을 지우고 싶습니다.

여기에 문제가 있습니다. 내가 찾은 방법 중 아무 것도 작동하지 않는 것 같습니다. 나는 시도 :

tools.clearChoices(); 
tools.clearFocus(); 
tools.setSelection(-1); 
tools.setItemChecked(-1, true); 

가 새 어댑터를 만드는 레이아웃 등 한가지의 작업을 요청 어댑터 데이터를 업데이트 한 다음하지만 상단으로 이동 목록됩니다. 내가 뭘 잘못했는지 알아?

+0

글쎄, 당신은'android : choiceMode = "singleChoice"'속성을 가지고 있기 때문에 아마도 그것을 바꿀 필요가있을 것입니다. –

+0

무엇을하고 싶습니까? 하나의 선택 또는 다중 선택 목록보기? – propoLis

+0

@AlejandroBertinelli 왜 내가 바꿀까요? 단일 선택 선택이 필요하지만 일부 외부 이벤트에서이 선택을 취소하고 싶습니다. 그러나 어떤 이유로 그것은 선택된 것으로 표시되어 있습니다. – KrwawyKefir

답변

0

좋아요, 항상 위치 표시가 문제였던 것처럼 보입니다. 수동 설정 및 청산 배경으로 그것을 해결 :

toolsDrawer.getChildAt(toolsDrawer.getCheckedItemPosition()).setBackgroundColor(Color.TRANSPARENT); 
    toolsDrawer.clearChoices(); 

및 삭제 안드로이드 : XML에서 listSelector.

+0

내 편집 된 답변도 시도해 볼 수 있습니다. 더 효율적이고 실용적인 솔루션입니다. – propoLis

+0

@propoLis, 예, 고맙습니다. 기회가 생기면 문제가되는 것이 더 자연 스럽습니다. 하지만 지금은 마감일 직전이기 때문에해야만합니다.) 미안하지만 의견을 보내 주셔서 감사합니다. – KrwawyKefir

+0

@propoLis는 일단 테스트하면 확실히 수행합니다;) – KrwawyKefir