마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

리스트뷰에서 아이템 클릭시 질문요!

0 추천

 



<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ItemListActivity">
 
    <fragment android:name="de.dbruhn.android.activatedstatedemo.ItemListFragment"
        android:id="@+id/item_list"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.3" />
 
    <FrameLayout android:id="@+id/item_detail_container"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.7"
        android:background="#D14424" />
 
</LinearLayout>

 

 

이런 모양의 레이아웃을 구현중인데요

 

왼쪽의 레이아웃을 리스트뷰로 구현을 했거든요

 

그런데 그냥 아이템클릭 리스너를 사용해서 저 효과를 주니깐, 다른아이템을 클릭했을때도,

저 맨처음에 클릭했을때의 효과가 남아있더라구요 ㅠ (한마디로 두개가 클릭된거처럼 보인다는...ㅠ)

 

 

이거관련 방법이 있으면 알려주시면 감사하겠습니다ㅠㅠㅠ!

bombermin (2,520 포인트) 님이 2014년 9월 11일 질문

2개의 답변

0 추천
 
채택된 답변

리스트뷰 xml 소스를 봤으면 하네요

일단 xml로 포커스 효과를 줄 수 있습니다.

 

res/drawable 폴더에 xml을 하나 생성하세요(ex : button.xml)

 

<?xml version="1.0" encoding="utf-8"?>
    <item android:state_enabled="false" android:drawable="@drawable/btn_alarm_off_normal" />
<item android:state_pressed="true" android:drawable="@drawable/btn_alarm_off_pressed" />
<item android:state_focused="true" android:drawable="@drawable/btn_alarm_off_pressed" />
<item android:drawable="@drawable/btn_alarm_off_normal" />
</selector>
 
대충 보시면 알겠죠? 노멀일때와 프레스일때 효과를 나타내는 소스입니다.
 
이걸 해당 아이템에 들어가있는 곳에 android:backgound="@drawable/button" 이런식으로 하면 됩니다.
 
냐옹이류 (1,110 포인트) 님이 2014년 9월 11일 답변
bombermin님이 2014년 10월 1일 채택됨
질문의 의도가 이게 아니라면 댓글 달아주세요
오단순히 xml에서만 건드려주면되는건가요??

사실 저렇게 프레스일때구분되어있는 xml 드로블을 사용하고 잇는데,

어떤때는 노멀/프레스구분이 되고 어떤때는 안되더라구요!
0 추천
onItemClick 쓰실거라면,

처음에 클릭효과 줄때 해당 position을 임의 변수에 담는 등의 방법으로 저장하시고.

onItemClick 부분에 효과주는 코드랑 같이

저장해둔 position이용해서 효과 제거하는 코드 추가하면 될듯!
uno (3,820 포인트) 님이 2014년 9월 11일 답변
...