1

いくつかのマーカーが付いた Google Maps API v2 を使用したアプリケーションがあります。各マーカーをクリックすると、タイトルなどの詳細を含むバルーンが表示されます。SystemClock を使用すると、3 秒間しか待機しませんが、アクションを実行します。

ユーザーがそのマーカーを X 秒間押している場合に何かしたいですか? スレッドを使用してみましたが、うまくいきませんでした。

if (onBalloonTap(currentFocusedIndex, currentFocusedItem)) {
            long thisTime = 0;
            thisTime = SystemClock.uptimeMillis();
            if (thisTime > 3000) {

                DirectionsTask getDirectionsTask = new DirectionsTask();
                getDirectionsTask.execute(getCurrentLocation(),
                        currentFocusedItem.getPoint());
            }
4

1 に答える 1

0

そんな感じ ?

    GeoPoint p = null, currentP = null;
    boolean isActivated = false;
    view.setOnTouchListener(new OnTouchListener() { 
        public boolean onTouch(View v, MotionEvent event) { 
            if(event.getAction()==MotionEvent.ACTION_DOWN) {
                isActivated = false;
                currentP = p ;
            }
            if(currentP == p && event.getEventTime()-event.getDownTime()>3000 && !) { 
                Toast.makeText(AudioPlayerActivity.this, "3 sec", Toast.LENGTH_LONG).show(); 
                isActivated = true; //avoid displaying a lot of toast } return true; } });
            }
            if(event.getAction()==MotionEvent.ACTION_UP) {
                currentP = null; p = null;
            }
        }
    });

     //extends Overlay type, works if the method is called when "action down"
     public boolean onTap(GeoPoint p, MapView    mapView)  {
          this.p = p;
          return true;
     }
于 2013-02-25T15:43:48.167 に答える