imageview 를 이용하여 click 리스너를 구현 하였습니다.
그런데 imageview를 클릭해도 이벤트가 발새하지 않네요...ㅜㅜ
그런데 이 imageview가 listview의 adapter로 textview와 같이 들어 가는 imageview 입니다.
이렇게는 이벤트를 실행시킬수가 없는 건가요??
솔직히 클릭도 따로따로 하고 싶은데 그것도 구현하려니 너무 복잡해서요..ㅜㅜ 실력이 안되서...ㅜㅜ
리스트뷰로 만드니 한 열단위로 클릭이 다 되더라구요...
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LayoutInflater inflater = getLayoutInflater();
View layerstateimage = inflater.inflate(R.layout.layeritemlist, (ViewGroup) findViewById(R.id.layout_root));
ImageView imagestate = (ImageView)layerstateimage.findViewById(R.id.layerstateim);
imagestate.setOnClickListener(layerstateListener);
}
private OnClickListener layerstateListener = new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "22", 200);
}
};
아네.. 그렇긴 한데요... 지금 이벤트 처리를 했는데도 안 먹어서요..ㅜㅜ
그래서 제가 여쭤 보고 싶은게... 혹시 리스트 뷰 안에 들어 있어서 그런게 아닌가 해서 여쭤 보는 거에요...
아이템 하나가 좌측은 그림 우측은 텍스트뷰 이렇게 구성이 되어 있는 리스트 뷰 거든요.
아이템 하나를 선택하면 행 전체가 선택이 되는게 보입니다. 아이템 선택시 선택한 한행 전체가 푸른색으로 채워 지니깐요.
그래서 이미지뷰의 클릭 리스너가 캐치하는게 아니가 아이템 셀렉트 리스너만 캐치를 하는게 아닌가 해서요...
2개의 리스트로 나눠야 하나....ㅜㅜ
일단 리스트 뷰는 하나의 ImageView만 있는게 아니겠죠? 데이터 갯수 만큼 있습니다.
그러면 이 데이터 갯수만큼 리스트뷰의 각행의View를 생성하여 뿌리는 어떠한 함수가 있겠죠? (adapter의 getView입니다)
그 함수에서 처리하셔야 ImageView가 클릭 이벤트를 가질수 있습니다.
그리고 inflate 함수는 레이아웃xml로부터 View를 생성하는 함수이지 화면에 있는 View를 찾아주는 함수가 아닙니다.
그 VIew에 있는 ImageView에다가 리스너를 설정해도 View자체가 화면에 뿌려지지 않는 상태인데 절대 반응할리가 없겠죠.




ImageView, TextView도 버튼처럼 클릭 이벤트 가질 수 있어요~