2012-11-12 5 views
1

사용자 정의보기 및 여러 단추가 포함 된 활동이 있습니다.사용자 정의보기에서 상위 활동으로 데이터 보내기

이제 뷰를 클릭하면 덮어 쓰여진 onTouchEvent가있는 뷰 클래스에서 처리됩니다.

그러나 사용자가 정확히 클릭 한 위치에 따라 부모 활동의 버튼에 포함 된 텍스트를 변경하고 싶을 수 있습니다.

다른 말로하면 : 부모 작업이 내 사용자 지정보기에서 데이터를 받도록하려면 어떻게해야합니까?

답변

1

인터페이스를 정의하고 콜백을 사용하여 뷰에 손이 닿았 음을 액티비티에 알립니다. 당신의 활동에

for (ViewWasTouchedListener listener:listeners){ 
    listener.onViewTouched(x,y); 
} 

터치 이벤트에서 사용자 정의보기

ArrayList<ViewWasTouchedListener> listeners = new ArrayList<ViewWasTouchedListener>(); 

... 

public void setWasTouchedListener(ViewWasTouchedListener listener){ 
    listeners.add(listener); 
} 

에서

public Interface ViewWasTouchedListener { 
    void onViewTouched(float x, float y); 
} 

: removeViewWasTouchedListener를 추가하여

public class Test extends Activity implements ViewWasTouchedListener { 

... 

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    ... 
    MyExtendedView customView = (MyExtendedView)findViewById(R.id.myCustomeView); 
    customView.setWasTouchedListener(this); 
    ... 
} 

public void onViewTouched(float x, float y){ 
    // do whatever you need to do 
} 

당신은 뷰 클래스를 향상시킬 수 있으며, 체크 setViewWasTouchedListener에 동일한 리스너를 두 번 추가하지 마십시오.

+0

정확하게 달성하려고 노력하고 있습니까? 감사! – Radical

+0

당신을 진심으로 환영합니다. – Simon

관련 문제