KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am looking for a way for when a user long touches a mapview (lets say for 1000ms) that i can some how do a certain action. How would i go about judging how long a user long touches a mapsview(or any view). It would be similar to android google maps app, when you long touch, it brings up a balloon overlay item. Edit added mapView.setOnLongClickListener(new View.OnLongClickListener() { public boolean onLongClick(View v) { Toast.makeText(mapView.getContext(), "Hello 123", 2000); return false; } }); the above does not work... any ideas why? Edit added This is what i am trying at the moment, but it does not seem to work, even if i only press on the phone, it says the event is an action_move, i am using an inner class in my MapActivity private long startTime=0; private long endTime=0; class MapOverlay extends Overlay { @Override public boolean onTouchEvent(MotionEvent ev, MapView mapView) { if(ev.getAction() == MotionEvent.ACTION_DOWN){ //record the start time startTime = ev.getEventTime(); Log.d("LC", "IN DOWN"); }else if(ev.getAction() == MotionEvent.ACTION_UP){ //record the end time endTime = ev.getEventTime(); Log.d("LC", "IN UP"); }else if(ev.getAction() == MotionEvent.ACTION_MOVE){ Log.d("LC", "IN move"); endTime=0; } //verify if(endTime - startTime > 1000){ //we have a 1000ms duration touch //propagate your own event Log.d("LC", "time touched greater than 1000ms"); Toast.makeText(getBaseContext(), "Hello 123", Toast.LENGTH_SHORT).show(); startTime=0; endTime=0; return true; //notify that you handled this event (do not propagate)
Tags (comma-separated)
Save Edits
Cancel