2013-11-26 3 views
0

У меня есть простое приложение о написании предложения, которое отображается при запуске приложения. Единственная проблема заключается в том, что мне нужно приложение, чтобы вычислить время, которое потребовалось пользователю, чтобы написать предложение. Например, когда вы касаетесь кнопки «Отправить» , в сообщении Toast будет сказано «Thats Right!», вам потребовалось 3,2 секунды «Как пример».Android SDK (Eclipse): Как создать простой таймер для простого приложения?

Я слышал, что вы можете установить таймер для начала, когда произойдет определенное действие ... и вы можете заказать его для остановки.

Итак, скажем, Таймер начнется, когда вы запустите приложение, и оно остановится, когда вы коснетесь кнопки «Отправить», и произнесите тост-сообщение, подобное приведенному выше, с указанием точного времени, которое потребовалось вам, чтобы написать чувство после запуска Приложение! *

Вот App Code надеюсь, что это помогает: *

Button w; 

TextView t; 

EditText e; 

@Override 

protected void onCreate(Bundle savedInstanceState) { 

super.onCreate(savedInstanceState); 

setContentView(R.layout.activity_main); 



w = (Button) findViewById(R.id.Write); 

t= (TextView) findViewById(R.id.FTS); 

e = (EditText) findViewById(R.id.Text); 


w.setOnClickListener(new View.OnClickListener() { 

@Override 

public void onClick(View v) { 


String check1 = t.getText().toString(); 
String check2 = e.getText().toString(); 

if (check1.equals(check2)) 

    Toast.makeText(MainActivity.this,"You Wrote it Right !!!",Toast.LENGTH_LONG).show(); 

else if (check2.equals("")) 

Toast.makeText(MainActivity.this,"It's Empty",Toast.LENGTH_LONG).show(); 

else 
    Toast.makeText(MainActivity.this,"You wrote it wrong,try again !",Toast.LENGTH_LONG); 

Я совершенно новой для Android, так что я действительно не знаю, как сделать это, спасибо за ваше время. *

ответ

11

вы можете использовать класс Timer, чтобы начать сеанс таймера. Выполните следующие действия:

1- определить глобальную переменную Timer и переменную для подсчета времени, как:

private Timer t; 
private int TimeCounter = 0; 

2- тогда, когда начинается деятельность, поэтому в onCreate добавить следующее: PS : что я сделал, у меня есть textView, чтобы показать время, когда он пишет предложение. так что если вы не хотите, что вы можете удалить tvTimer часть в следующем коде

t = new Timer(); 
    t.scheduleAtFixedRate(new TimerTask() { 

     @Override 
     public void run() { 
      // TODO Auto-generated method stub 
      runOnUiThread(new Runnable() { 
       public void run() { 
        tvTimer.setText(String.valueOf(TimeCounter)); // you can set it to a textView to show it to the user to see the time passing while he is writing. 
        TimeCounter++; 
       } 
      }); 

     } 
    }, 1000, 1000); // 1000 means start from 1 sec, and the second 1000 is do the loop each 1 sec. 

тогда, когда кнопка нажата, остановить синхронизацию и показать timeCounter Название переменной в Toast.

t.cancel();//stopping the timer when ready to stop. 
Toast.makeText(this, "The time taken is "+ String.valueOf(TimeCounter), Toast.LENGTH_LONG).show(); 

P.S: Вы должны иметь дело с преобразованием секунды в минуты, потому что число может простирается до 360 секунд, так что вам нужно, чтобы преобразовать его в 6 минут. вы можете сделать это в t.schedualeAtFixedRate или после того, как вы закончите, вы можете преобразовать его и показать его в тосте

Надеюсь, вы сочли это полезным. пожалуйста, дайте мне отзыв, если он сработает для вас.

+1

Большое спасибо! , Он отлично работает :) –

+0

рад, что смог помочь – Coderji

6

Позвольте мне обратить ваше внимание на Chronometer Widget on the Dev Page

Также вот вкус того, что вы получите, используя хронометр виджет (переход к 8.30)

Video of Chronometer Widget

XML

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

Java

((Chronometer) findViewById(R.id.chronometer1)).start(); 
((Chronometer) findViewById(R.id.chronometer1)).stop(); 
+0

Это великолепно. Я продолжал натыкаться на людей, предлагающих настраиваемый Обработчик или Таймер. Я был убежден, что должен быть по умолчанию способ показать время. Благодаря! –

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