查找自您上次在Android Studio中按下按钮后的时间

时间:2015-12-25 01:05:17

标签: java android scope

我对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类。我想通过找出时间上的差异来弄清楚如何做到这一点。

1 个答案:

答案 0 :(得分:0)

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()中有多个View,您可以查看通过v.getId()查看ID,以确定如何处理点击,具体取决于发送视图