2012-10-16 59 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 
    } 
});