Java 查找自上次在Android Studio中按下按钮以来的时间
我对Java和Android Studio还很陌生,所以请原谅我所说的任何不切实际的话。现在我有一个按钮,我想知道你上次按下这个按钮的时间,当你再次按下它的时候,或者这是你自开机以来第一次按下这个按钮。我知道怎么做,只是我找不到一种方法来存储你按下按钮的确切时间,以备将来使用Java 查找自上次在Android Studio中按下按钮以来的时间,java,android,scope,Java,Android,Scope,我对Java和Android Studio还很陌生,所以请原谅我所说的任何不切实际的话。现在我有一个按钮,我想知道你上次按下这个按钮的时间,当你再次按下它的时候,或者这是你自开机以来第一次按下这个按钮。我知道怎么做,只是我找不到一种方法来存储你按下按钮的确切时间,以备将来使用 public class FightScreen extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceSta
public class FightScreen extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fight_screen);
final Button fightButton = (Button) findViewById(R.id.fightButton);
final TextView timeText = (TextView) findViewById(R.id.timeText);
final long bootTime = SystemClock.elapsedRealtime();
fightButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Long timeElapsed = SystemClock.elapsedRealtime() - bootTime;
timeText.setText(String.valueOf(timeElapsed));
}
});
}
}
我遗漏了一些与我的问题完全无关的内容。
这段代码查找从启动活动到按下按钮的时间。我只是想知道如何将onClick函数中的变量返回到它的未来迭代中。类似于生成一个全局变量lastButtonPressTime,并在适用的情况下使用它代替bootTime,这样这个代码块就可以实现我真正想要的功能
编辑:这不是另一篇文章的副本,因为我没有尝试使用Timer类。我想通过寻找时间的差异来找出如何做到这一点
public class FightScreen extends AppCompatActivity implements View.OnClickListener {
long lastClickTime = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fight_screen);
final Button fightButton = (Button) findViewById(R.id.fightButton);
final TextView timeText = (TextView) findViewById(R.id.timeText);
final long bootTime = SystemClock.elapsedRealtime();
lastClickTime = bootTime;
fightButton.setOnClickListener(this);// the listener is this class now
@Override
public void onClick(View v) {
Long timeNow = SystemClock.elapsedRealtime();
Long timeElapsed = SystemClock.elapsedRealtime() - lastClickTime;
lastClickTime = timeNow;
timeText.setText(String.valueOf(timeElapsed));
}
}
实现
View.OnClickListener
并覆盖如上所示的onClick()
方法,这基本上是处理事件的一种不同方式。如果有多个视图,那么在onClick()
中,可以通过v.getId()检查视图id
要根据发送视图确定如何处理单击可能重复的?可能重复的第一个答案不使用Timer类,因此我认为liquidsystem在这里仍然正确。但是我不能这样做,因为为了能够在内部类中使用lastClickTime,我需要将其设置为最终答案。这反过来又限制了我在所述内部类中修改它。请查看此链接我似乎无法使其正常工作,我完整的未桥接代码如下:。它没有任何错误,只是在我进入活动时崩溃了。“尝试在空对象引用上调用虚方法。”指向代码的链接无效,但很可能您的按钮未初始化。你确定战斗按钮在(右布局。活动\战斗\屏幕)中吗??!奇怪的是,这个链接确实对我有用。试试看。是的,fightButton在活动中。问题可能出在我的实际代码中,这里我重新编译了它:。这两种方法都可以,也许可以尝试将URL复制到浏览器中。谢谢