单击按钮时如何设置计时器?

Ric*_*ers 1 java android timer

我的意思是就像停下车一样,当单击按钮时,计时器会一直打开,直到按下停止按钮为止

startbutton= (Button)findViewById(R.id.black1);
  startbutton.setOnClickListener(new View.OnClickListener() {

              public void onClick(View v){
              //Start the timer
                                         }                
            });

 stopbutton= (Button)findViewById(R.id.black1);
 stopbutton.setOnClickListener(new View.OnClickListener() {

              public void onClick(View v){
              //Stop the timer
                                         }                
            });
Run Code Online (Sandbox Code Playgroud)

第二个问题

如果计时器显示90秒,如何使其在屏幕上显示imageview或按钮?像某些if语句使按钮可见,每个计时器计数为90秒(90、180、270等),他会将按钮可见性设置为可见。

之前谢谢。

San*_*eev 5

在您的手表中使用天文钟 xml

<Chronometer
        android:id="@+id/chronometer1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Chronometer" />
Run Code Online (Sandbox Code Playgroud)

在你的 java

Chronometer focus = (Chronometer) findViewById(R.id.chronometer1);

startButton.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {

        focus.start();
        setVisibilityTimerOn(); //Second Question Solution
    }
});

stopButton.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {

        focus.stop();
        setVisibilityTimerOff();
    }
});
Run Code Online (Sandbox Code Playgroud)

第二个问题如果您想打开/关闭某些按钮/ ImageView的可见性,请设置一个处理程序

//Declare these variable 
private Handler handler;
private Runnable updateView;


private void setVisibilityTimerOn(){
     timeHandler = new Handler(); //it's better if you declare this line in onCreate (becuase if user press stopButton first before pressing startButton error will occur as handler was never initialized and you try calling removeCallback function)
     updateView = new Runnable() {
         public void run() {
              someImageView.setVisibility(View.VISIBLE);
         }
     };
     handler.postDelayed(updateView ,90000);//this will be on after 90 second
}

private void setVisibilityTimerOff(){
    handler.removeCallbacks(updateView);
}
Run Code Online (Sandbox Code Playgroud)