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

我对Java和Android Studio还很陌生,所以请原谅我所说的任何不切实际的话。现在我有一个按钮,我想知道你上次按下这个按钮的时间,当你再次按下它的时候,或者这是你自开机以来第一次按下这个按钮。我知道怎么做,只是我找不到一种方法来存储你按下按钮的确切时间,以备将来使用

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复制到浏览器中。谢谢