2012-10-16 2 views
1

터치 스크린 기능을 사용하려고합니다. 사용자가 화면을 위 또는 아래로 움직여야하는지에 따라 몇 가지 작업을 수행하려고합니다.Android에서 터치 스크린 기능 관련 문제가 발생했습니다.

여기에 나는 내가 로그 캣 또는 콘솔에서 어떤 메시지가 표시 해달라고 화면에 클릭이

public class Sankhyaki extends Activity implements OnTouchListener, OnKeyListener { 

float x = 0, y = 0; 

public static final String TAG="Sankhayaki"; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_sankhyaki); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.activity_sankhyaki, menu); 
    return true; 
} 

public boolean onTouch(View v, MotionEvent me) 
{ 

    x = me.getX(); 
    y = me.getY(); 


    switch (me.getAction()) { 
    case MotionEvent.ACTION_DOWN: 
     System.out.println("\n ACTION DOWN"); 
     Log.i(TAG, "DOWN"); 
     Log.i(TAG,"DOWN"); 
     Log.i(TAG, "x = " + x + "y = " + y); 
     break; 

    case MotionEvent.ACTION_UP: 
    System.out.println("\n ACTION UP"); 
     Log.i(TAG, "UP"); 
     Log.i(TAG, "x = " + x + "y = " + y); 


     break; 

    case MotionEvent.ACTION_MOVE: 
    System.out.println("\n ACTION MOVE"); 
     Log.i(TAG, "MOVE"); 
     Log.i(TAG, "x = " + x + "y = " + y); 
     break;    

    } 


    return false; 
} 

} 

에뮬레이터를 실행하는 동안, 내 코드입니다. 내가 어떤 일을 잘못하고 있는지 확실하지 않습니다. Logcat이나 Console에 어떤 로그 메시지도 보이지 않기 때문에, 스위치처럼 보이지 않습니다.

내가 올바른지 여부를 확인하는 방법은 없습니다.

은 내가 컨트롤이 여기에 모든 정보는 도움이 될 것입니다

여기 일이되지 않은 스위치 케이스에가는 것을 확신 후에 스위치의 경우에 더 많은 코드를 넣어합니다.

답변

1

활동을 청취자로 등록해야합니다. 우선, 당신의 XML 레이아웃 파일에서 루트 뷰의 ID를 필요 안드로이드 : ID를 = "@ + ID/your_view"youer에서 onCreate() 메소드에서

이 쓰기 :

View v=findViewById(R.id.your_view); 
v.setOnTouchListener(this); 
+0

는 잘못 그래, 그는 이미 자신의 활동에 OnTouchListener 인터페이스를 구현하고이 경우에 실제로 더 좋다. 좋은 전화;) – speakingcode

0

당신은

) ... 제대로 적절한 뷰 터치 이벤트 핸들러를 등록 할

http://developer.android.com/guide/topics/ui/ui-events.html

http://developer.android.com/reference/android/view/View.html#setOnTouchListener(android.view.View.OnTouchListener 필요

당신은 당신의 레이아웃에서 해당보기 항목을 설정해야합니다 ..

View v = findViewById(R.id.whateverView); 
v.setOnTouchListener(new onTouchListener() 
{ 
    public void onTouch(View v, MotionEvent event) 
    { 
     //handle the event 
    } 
}); 
관련 문제