unable to get touched x and y positions back
I just started learnin开发者_运维知识库g how to program for android and cant seem to get the x positions for when someone clicks on the screen to appear in log cat. (im using an emulator if that has to do with anything) when i do click on the screen nothing happens. Here is my program on startup i get no errors. also using a relative layout
package com.practice;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
public class PracticeActivity extends Activity implements OnTouchListener{
int touchX;
int touchY;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
onTouchEvent(event);
touchX = (int) event.getX();
touchY = (int) event.getY();
Log.d( "MOUSE", String.valueOf(touchX) );
return true;
}
}
Your OnTouchListener won't get called until you register it with a view. For example:
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Find a view in the layout
View view = findViewById(android.id.content);
// register the listener
view.setOnTouchListener(this);
}
Try using Integer.toString(touchX) and return false instead of true, other than that your code seems fine. Emulator do register the touch events. Also there is a utility called as DDMS, located in the tools folder of the SDK. When your emulator is running, use this utility to get the graphical logcat. You can filter messages as well.
精彩评论