2017-08-18 12 views
0

En bref, comment est-ce que je récupérerais une heure et l'afficherais sur une vue de texte ailleurs? Comme une variante pour arrêter le rodage de la montre qui met automatiquement à jour une vue lorsque la minuterie s'arrête?Comment faire je récupère l'heure actuelle sur un chronomètre?

Si vous connaissez des ressources sur le rodage approprié ou d'autres exemples de android studio time tracking features, veuillez les inclure.

Voici quelques travaux. Code chronomètre java:

package com.example.temp1.stackoverflowquestion; 

import android.os.Handler; 
import android.os.SystemClock; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

public class MainActivity extends AppCompatActivity { 


//Timer Text and Button 
TextView txtTimer; 
Button btn; 

//Stop Watch logic 
Handler handler; 
long StartTime,timeInMilliseconds,TimeBuff,UpdateTime =0L; 
int Seconds, Minutes, MilliSeconds; 



@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    txtTimer = (TextView) findViewById(R.id.Timer_Value); 
    btn = (Button)findViewById(R.id.btnStart_Stop); 
    btn.setText("Start"); 
    handler = new Handler() ; 

    //start/stop timer and change text 
    btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      if (btn.getText().toString() == "Start") { 

       btn.setText("Stop"); 
       StartTime = SystemClock.uptimeMillis(); 
       handler.postDelayed(runnable, 0); 
      } else { 
       btn.setText("Start"); 
       TimeBuff += timeInMilliseconds; 
       handler.removeCallbacks(runnable); 
      } 
     } 
    }); 

} 

//Stop Watch logic 
public Runnable runnable = new Runnable() { 
    @Override 
    public void run() { 
     timeInMilliseconds = SystemClock.uptimeMillis()-StartTime; 
     UpdateTime = TimeBuff+timeInMilliseconds; 
     Seconds=(int)(UpdateTime/1000); 
     Minutes=Seconds/60; 
     Seconds%=60; 
     MilliSeconds=(int)(UpdateTime%1000); 
     txtTimer.setText(""+Minutes+":" 
     +String.format("%02d",Seconds)+":" 
     +String.format("%03d",MilliSeconds)); 
     handler.postDelayed(this,0); 
    } 

}; 
} 

Voici son code de mise en page .xml:

<TextView 
     android:id="@+id/Timer_Value" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:textColor="#000" 
     android:layout_margin="20dp" 
     android:text="00:00:00" 
     android:textSize="50sp"/> 

     <Button 
      android:id="@+id/btnStart_Stop" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_margin="15dp"/> 

Répondre

0

I figured it out. Au clic, vous devez appeler la vue de texte et définir le texte à l'intérieur.

Voici un exemple qui fonctionne dans le code fourni dans la question, l'ajouter dans la méthode sur un clic:

txtView.setText(txtTimer.getText().toString());