2011-09-12 4 views
0

私はちょうどアンドロイドのためにプログラムする方法を学び始めて、誰かが画面上をクリックしてログ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

おかげさまで、ビューを追加しようとしましたが、今は完全に機能しています。ちなみに、通常のピクセルのように返された値はサイドノートにありますか? – user4090

+0

APIの整数ピクセル値は、通常、実際のピクセル数です。 –

0

を使用して持つInteger.toString(touchX)を使用して試してみて、あなたのコードは罰金だということ以外に、偽の代わりに、trueを返します。 エミュレータはタッチイベントを登録します。 また、SDKのtoolsフォルダにあるDDMSというユーティリティもあります。エミュレータが動作しているときは、このユーティリティを使用してグラフィカルなlogcatを入手してください。メッセージもフィルタリングできます。

関連する問題