2012-10-16 95 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中或控制檯的任何消息代碼。我不確定我是否做錯了任何事情。 只是因爲我沒有看到在logcat中或控制檯, 任何日誌消息,它看起來像控制未在開關罩去。

沒有辦法,我確認我是否這樣做是正確與否。

我希望把更多的代碼在開關的情況下,我 確保控制權就轉至未發生在這裏的開關情況下,

這裏的任何信息將是有益之後。

回答

1

您必須先註冊你的活動作爲一個傾聽者。首先,在你的XML佈局文件,你需要爲根視圖的ID:機器人:ID = 「@ + ID/your_view」

在十有二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

http://developer.android.com/reference/android/view/View.OnTouchListener.html

你需要把它放在您的佈局相應的視圖項..

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