2012-02-09 8 views
1

터치시 EditView으로 변환되는 TextView이 있습니다. 그러나 사용자가 EditView 외부에 닿으면 반대가 발생하기를 원합니다. 나는 setOnFocusChangeListener을 사용하려고 시도했지만, 다른 것이 포커스를 얻은 경우에만 작동하는 것처럼 보입니다. onTouch을 가로 챌 수 있다는 것을 알고 있지만이 시나리오를 처리하는 더 간단한 방법이 있습니까?안드로이드 - TextView 외부에서 사용자가 "클릭"여부를 어떻게 알 수 있습니까?

모든 레이아웃과 클릭 뷰를 확인 포커스, 각각에 OnClickListener를 구현하는 텍스트 뷰와 편집보기의

답변

0

설정 부모는 아래와 같이 OnClickListener를 쓰기 :

private ClickListener implements OnClickListener 
{ 
    pubic void onClick(View view) 
    { 
     if(v.getId()!=R.id.editView) 
     { 
       //Write your code here to replace views 
     } 
    } 
} 
1

내가 너무 내 프로젝트에서 이것을 사용했다

EditText에서 레이아웃을 "focusable = true"및 "clickable = true"로 설정하면 EditText는 배경이 없음 그래서 포커스 변경시 TextView처럼 보입니다.사용자가 을 볼 수 있도록 EditText의 텍스트 색상은 텍스트를 편집 할 수 있습니다. 그런 다음 외부의 레이아웃에는 클릭시 OnClickListener가 있습니다. 저는 소프트웨어 키보드를 숨기고 텍스트 색상을 TextView 색상으로 다시 변경합니다. 이 모든 것은 요소를 전환하지 않고 작동합니다. 원하는 경우 두 요소를 모두 FrameLayout에 배치하여 요소가 레이아웃에서 동일한 위치에 있는지 확인하고 onClick 이벤트에서OnClickListener를 TextView에 구현 한 다음 개체 가시성을 전환 할 수 있습니다.

어쩌면이 아이디어가 도움이됩니다.)

관련 문제