长按并松开后激活。 Android java 应用

Activate after long touch and release. Android java app

我的第一个应用程序,也是第一次体验 java 编码。

我正在构建一个应用程序来辅助我的 Rubiks 魔方速度训练,但我的计时器卡住了。

我的总体计划是:

我有我的主 activity 屏幕,只需触摸 1 次(屏幕上除我的 2 个按钮外的任何地方)即可启动计时器。当计时器启动时,按钮会淡化,只有计时器可见。 此时我有我的 MainActivity 和一个 Timer activity。当按下屏幕时,计时器 activity "launches"。然后我必须再按一次才能启动计时器,暂时可以,稍后我会修复它。

我现在的主要目标是:

在定时器 activity 上,我想按住至少 2 秒,然后松开,定时器必须开始。此后,再次单击时,计时器必须停止。

我已经搜索过了,但是知识很浅。我尝试了一些不同的东西。而我所拥有的基本上是这样的。

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_timer);

    TimerView = (TextView) findViewById(R.id.TextTimerView);


    View StopTimeView = (View) findViewById(R.id.StopTimeView);

    StopTimeView.setOnTouchListener(new View.OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_DOWN) {

                starttime = SystemClock.uptimeMillis();
                timerhandler.postDelayed(timerrunnable,2000);
                timestarted =  true;
            }
            if (event.getAction() == MotionEvent.ACTION_UP) {
                if(timestarted = true){
                    timestarted = false;
                    timerhandler.removeCallbacks(timerrunnable);

                }
            }

            return true;
        }
    });

}

此代码在触摸被释放时停止。如果我删除最后一个 IF 语句,计时器会在给定的 2 秒后自动启动,无论我是否按住。此外,我需要添加一个额外的按钮来停止计时器,这是我不想要的(能够通过触摸任何地方停止的能力很重要)。

我希望这个问题是可以理解的,不要含糊不清。如果需要更多代码,请告诉我。 感谢您的宝贵时间!

如果按钮仍被按下,只需检查您的 timerrunnable。此外,启动 onTouch 方法并检查您的计时器是否为 运行。如果是,您知道您想要停止它 - 如果不是,您可以继续使用已有的代码。