2011-09-12 47 views
0

我剛開始學習如何針對android進行編程,並且當有人點擊屏幕出現在log cat中時,似乎無法獲得x位置。 (即時通訊模擬器,如果這與任何事情有關),當我點擊屏幕上沒有任何反應。這是我的啓動程序,我沒有得到任何錯誤。也使用相對佈局無法觸及x和y位置返回

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

logcat放出什麼東西? –

回答

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); 
} 
+0

謝謝你剛剛嘗試添加視圖,它現在完美的作品,順便說一句,旁邊的值是正常像素返回值?或以dpi爲單位 – user4090

+0

API中的整數像素值通常以實際像素爲單位。 –

0

嘗試使用Integer.toString(touchX)並返回false而不是true,除此之外,您的代碼似乎很好。 模擬器會註冊觸摸事件。 還有一個稱爲DDMS的實用工具,位於SDK的工具文件夾中。當你的模擬器運行時,使用這個工具來獲取圖形化的logcat。你也可以過濾消息。