长按并松开后激活。 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 方法并检查您的计时器是否为 运行。如果是,您知道您想要停止它 - 如果不是,您可以继续使用已有的代码。
我的第一个应用程序,也是第一次体验 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 方法并检查您的计时器是否为 运行。如果是,您知道您想要停止它 - 如果不是,您可以继续使用已有的代码。