2011-03-30 1 views
3

여기 내 문제가 있습니다 :에는 ListView에 다른 위치가 나열되어 있고 MapView에는이 위치에 마커가 포함되어 있습니다.ListView 항목 코드에서 코드 작성

내가 지금 원하는 것은 MapView 마커 중 하나를 클릭하면 해당 ListView 항목을 선택하고 (클릭 한 것처럼) 빛을 발하는 것입니다.

나는 ListView.setSelection(int)ListView.requestChildFocus(View, View)이라는 메소드를 찾았습니다. 첫 번째 것은 내가 원한 것입니다 (목록이 길면 아이템이 보이기 전까지 표시됩니다). 그러나 아이템을 명시 적으로 표시하는 광선 효과는 부족합니다. 두 번째 매개 변수에 대해서는 두 번째 매개 변수가 무엇인지 알지 못합니다 (이전에 액티비티에 집중된 뷰입니까?).

그래서 아이템을 발광시키는 방법이 있습니까? 실제 키보드를 사용하여 선택하는 경우와 같습니다.

감사합니다.

편집 : 보조 질문, ListView 항목을 클릭 할 때 배경으로 사용되는 표준 드로어 블을 가져올 수 있습니까? R.attr에서 listPreferredItemHeight 또는 그와 비슷한 것을 찾을 수 있습니까?

+0

어떻게 든 안드로이드 휴가 터치 모드를 요청하고 setSelection 전화를 당신이 때문에 글로우 효과, 터치 모드에서 작동하지 않습니다. 내 머리 꼭대기에서 어떻게 떨어져 있는지 모르겠다. 목록보기 항목을 터치 모드로 집중시킬 수 있습니까? – CodeFusionMobile

+0

답장을 보내 주셔서 감사 드리며,이 터치 모드를 살펴 보겠습니다. 보조 질문도 추가했습니다. – Takhiarel

답변

5

항목을 선택하는 대신 해당 항목을 선택합니다. 이렇게하면 항목이 터치 모드에있을 때 선택 상태를 유지하지 않으므로 StateListDrawable을 사용하여 항목의 모양을 변경할 수 있습니다. ListView을 단일 선택 모드로 설정하고 목록보기 항목을 선택 가능하게 만들고 StateListDrawable을 사용하여 선택 항목의 모양을 변경해야합니다.

단일 선택 모드에서 목록보기 넣으려면 :

getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE); 

를 그런 다음 당신은 당신의 ListView에서 항목을 강조하고자 할 때, 당신은이 작업을 수행 :

getListView().setItemChecked(index, true); 

내가의 루트 항목을 생각하여 행의 레이아웃은 Checkable을 구현해야하며, CheckableRelativeLayout 또는 CheckableLinearLayout 온라인의 예를 찾을 수 있어야합니다.

android:background="@color/list_view_item_selector" 
:하지만 당신은 여전히이 레이아웃이 추가에 의해 확인 될 때 ​​모양을 변경할 수있는 StateListDrawable를 사용해야합니다 행의 레이아웃 그래서, 빛해야 "확인"항목을 만드는

이 같은 color\list_view_item_selector.xml 파일을 생성 :

<?xml version="1.0" encoding="UTF-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_checked="true" android:drawable="@color/selected_item" /> 
    <item android:drawable="@android:color/transparent" /> 
</selector> 
+0

좋아, 작동! 고마워, 나는 그걸로 하루를 보냈을거야. BTW "drawable \ list_view_item_selector.xml"이 아닙니까? – Takhiarel

+0

ListView가 자동으로 스크롤되도록하기 위해'setItemChecked()'이후에'setSelection()'이 호출되어야합니다 (왜 그런지 모르겠습니다). – Takhiarel

+0

좋아, 마지막 코멘트 (o rly?) : 필자의 경우'CheckedTextView'를 사용했는데 새로운 클래스에서'Checkable'을 구현할 필요가 없었습니다. – Takhiarel