Je veux créer une horloge binaire Android simple, mais mon application se bloque. J'utilise 6 champs de textview: 3 pour la décimale et 3 pour la représentation binaire de l'heure actuelle (HH: mm: ss). Voici le code:Simple horloge binaire Android
import java.text.SimpleDateFormat;
import java.util.Calendar;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class Binary extends Activity implements Runnable
{
Thread runner;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
if (runner == null)
{ //start the song
runner = new Thread(this);
runner.start();
}
}
@Override
public void run()
{
TextView hours_dec = (TextView) findViewById(R.id.hours_dec);
TextView mins_dec = (TextView) findViewById(R.id.mins_dec);
TextView secs_dec = (TextView) findViewById(R.id.secs_dec);
TextView hours_bin = (TextView) findViewById(R.id.hours_bin);
TextView mins_bin = (TextView) findViewById(R.id.mins_bin);
TextView secs_bin = (TextView) findViewById(R.id.secs_bin);
SimpleDateFormat hours_sdf = new SimpleDateFormat("HH");
SimpleDateFormat mins_sdf = new SimpleDateFormat("mm");
SimpleDateFormat secs_sdf = new SimpleDateFormat("ss");
Calendar cal = Calendar.getInstance();
while (runner != null)
{
WaitAMoment();
cal.getTime();
hours_dec.setText(hours_sdf.format(cal.getTime()));
mins_dec.setText(mins_sdf.format(cal.getTime()));
secs_dec.setText(secs_sdf.format(cal.getTime()));
hours_bin.setText(String.valueOf(Integer.toBinaryString(Integer.parseInt((String) hours_dec.getText()))));
mins_bin.setText(String.valueOf(Integer.toBinaryString(Integer.parseInt((String) mins_dec.getText()))));
secs_bin.setText(String.valueOf(Integer.toBinaryString(Integer.parseInt((String) secs_dec.getText()))));
}
}
protected void WaitAMoment()
{
try
{
Thread.sleep(100);
} catch (InterruptedException e) { };
}
}`
Quand une application se bloque, vous pouvez toujours regarder à la sortie du journal du simulateur ou du dispositif réel. Où se bloque-t-il? –
Spécifiquement, utilisez 'adb logcat', DDMS ou la perspective DDMS dans Eclipse pour trouver votre trace de pile Java. Recherchez la ligne "Caused By:" pour trouver l'exception. – CommonsWare
Merci pour les réponses ici aussi! Oui, j'utilise normalement LogCat pour tracer des erreurs mais je ne pouvais rien comprendre à propos de la présente en utilisant la sortie LogCat. – User3419