2015-08-31 5 views
1

Я имею в виду, как stopwach, когда кнопка нажата таймер на, пока кнопка остановки не нажатаКак установить таймер при нажатии кнопки?

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 
             }     
      }); 

и второй вопрос,

если таймер показывает 90 вторых, как сделать его показать ImageView или кнопку на экране ? например, какой-либо оператор if, чтобы сделать кнопку видимой, каждый таймер подсчитывается до 90 секунд (90, 180, 270 и т. д.), он отобразит видимость кнопки на видимую.

Спасибо прежде.

+0

пожалуйста, проверьте следующую ссылку: HTTP: //examples.javacodegeeks.com/android/core/os/handler/android-timer-example/ –

+0

http://developer.android.com/reference/java /util/Timer.html – Zarwan

+0

Спасибо, что дали некоторую ссылку, это помогло, но все равно не ответили на мой второй вопрос там – RichFounders

ответ

4

Используйте хронометр в вашем xml

<Chronometer 
     android:id="@+id/chronometer1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Chronometer" /> 

в вашем 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(); 
    } 
}); 

Второй вопрос Если вы хотите, чтобы включить ВИДИМОСТЬ включения/выключения некоторых кнопок/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); 
} 
+0

да это хорошо, но все равно не отвечает на мой второй вопрос там LX – RichFounders

+0

Я не понял ваш второй вопрос, можете ли вы уточнить? –

+0

Я имею в виду, что если таймер уже 90 секунд, то сделайте, как оператор if, чтобы установить видимость кнопок. это можно сделать так? – RichFounders

0

Это работает как секундомер с интервалом 1 мс.

Handler handler= new Handler(); 

1. click to start (code) 


    Runnable runnable = new Runnable() { 
         @Override 
         public void run() { 
     //put your code to be executed on within every interval 
          handler.postDelayed(this, 1); 
         } 
        }; 

     handler.postDelayed(runnable, 5); //start after 5 seconds 

2. click to stop (code) 
    handler.removeCallbacksAndMessages(null); 

Должно работать. Благодаря

Смежные вопросы