좌표값을 사용하여 좌표위치가 터치 된 것과 같은 이벤트를 발생시키고자 합니다.

여기서 구현하고자 한 내용은
화면 어딜 터치 하든 좌표값 X:20 Y:70을 클릭한 것과 같은 이벤트를 발생시키고 싶은데
다음과 같은 문제점이 있습니다.

1. event.setLocation(20, 70) 함수를 통해 event의 새로운 좌표를 설정하고
2. onTouchEvent(event)를 수행하였습니다.

여기서 저는 X:20 Y:70 위치에 버튼이 위치하고 있기 때문에
버튼이 클릭된 것과 같은 onClick()이 수행될 것이라고 판단했습니다만

결과는 단순히 버튼이 없는 것처럼 그냥 좌표위치가 터치 된 것처럼 작동됩니다.


결국 하고 싶은 것은
이벤트 발생시 각 버튼의 ID를 링크시켜서 이벤트를 발생시키는 것이 아니라
좌표값을 통해 그 위치에 있는 버튼이든 List든 터치된 것처럼 이벤트가 발생되도록 만들고 싶습니다.

View에 onClick이벤트인지 onTouchEvent인지 판단하기 전 뭔가 더 로우레벨 적인 이벤트가 발생할 것 같은데

아시는분의 조언 부탁드리겠습니다.



아래는 간단히 만들어 본 소스입니다. 


public class TouchEvent extends Activity implements OnClickListener{
 
 TextView text1, text2;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Button btn = (Button)findViewById(R.id.Button01);
        
       // btn.setOnTouchListener(this);
        
        text1 = (TextView) findViewById(R.id.TextView02);
        text2 = (TextView) findViewById(R.id.TextView04);
        
    }

    public void onClick(View v)
    {
     if( v.getId() == R.id.Button01)
     {
      Log.d("CHK", "ON");
     }
    }  

   

    public boolean onTouchEvent(MotionEvent event)
    {
     Log.d("CHK", "1");
     int action = event.getAction();
     
     switch( action )
     {
      // 터치스크린에 손을 댔을 때
      case (MotionEvent.ACTION_DOWN) :
       
       //실수형을 정수로 변환 후 문자열로 재변환
       text1.setText(Float.toString(event.getX()));
       text2.setText(Float.toString(event.getY()));
      
       Log.d("CHK", ""+event.getX());
       Log.d("CHK", ""+event.getY());
       
       event.setLocation(20, 70);
       event.setAction(10);
       onTouchEvent(event);
       
       
       break;
       
       
       
       
      // 터치스크린에서 손을 떼었을 때 
      case (MotionEvent.ACTION_UP):
       break;
      // 터치스크린에 손을 댄 채로 움직일 때
      case (MotionEvent.ACTION_MOVE):
       text1.setText(Float.toString(event.getX()));
    text2.setText(Float.toString(event.getY()));
       break;
       
      case (10):
       Log.d("CHK", ""+event.getX());
    Log.d("CHK", ""+event.getY());
       Log.d("CHK", "TEST");
       break;
      
     }
     return super.onTouchEvent(event);
    }
}