我刚开始学习如何为Android编程,当有人点击屏幕显示在log cat中时,似乎无法获得x位置。 (我使用模拟器,如果这与任何事情有关),当我点击屏幕没有任何反应。这是我的启动程序,我没有错误。也使用相对布局
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;
}
}
答案 0 :(得分:0)
尝试使用Integer.toString(touchX)并返回false而不是true,除了你的代码似乎没问题。 模拟器会注册触摸事件。 还有一个名为DDMS的实用程序,位于SDK的tools文件夹中。当您的模拟器运行时,使用此实用程序来获取图形logcat。您也可以过滤消息。
答案 1 :(得分:0)
在向视图注册之前,不会调用OnTouchListener。例如:
/** 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);
}