1

長押しリスナーの継続時間を設定できますか? 私が欲しいのは、ユーザーが3秒間画面に触れ続けると、長押しのリスナーがトリガーされ、ポップアップを開いて設定する必要があるということです。

前もって感謝します。

4

3 に答える 3

1

onTouch Listener をオーバーライドし、押された、解放されたイベントを処理し、ボタンが押されている間にタイマーを設定します (イベント == "押された")

private Timer timer;

 public LongClickTimer(int seconds) {
            timer = new Timer();
            timer.schedule(new LongClickTask(), seconds *1000);         
        }
 class LongClickTask extends TimerTask {
            public void run() { 
             // do what you want            
                timer.cancel(); 
            }
        }
     button.setOnTouchListener(new OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                Log.v(TAG, "EVENT" + event.toString());
                    if(event.getAction == 2) {// pressed                        
                    new LongClickTimer(5); // schedule for 5 seconds
                    }else{          
                     timer.cancel();
                    }
               return false;
              }
           });
于 2012-09-18T09:16:29.527 に答える
0

長押しリスナー内で、3 秒の制限でハンドラーを設定できます。3 秒の時間に達した場合は、その中でメソッドを実行するか、デフォルトのメソッドを作成します。

于 2012-09-18T09:11:39.337 に答える
0

Android 2.0 から、Activity にはメソッドが含まれます。

public boolean onKeyLongPress(int keyCode, KeyEvent event)

たとえば、戻るボタンを長押しすると、次のようになります。

@override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) 
    {
        // do your stuff here
        return true;
    }
    return super.onKeyLongPress(keyCode, event);
}

設定タブを開くには、次のコードとアクティビティを実行できます...

Intent intent = new Intent(android.provider.Settings.ACTION_SETTINGS);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
activityContext.startActivity(intent);

詳細については、理解を深めるためにアクセスしてください。

于 2012-09-18T09:16:54.003 に答える