1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Timerproblem ...

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von K.Raul, 23.05.2012.

  1. K.Raul, 23.05.2012 #1
    K.Raul

    K.Raul Threadstarter Neuer Benutzer

    Beiträge:
    4
    Erhaltene Danke:
    0
    Registriert seit:
    23.05.2012
    Hallo zusammen,
    ich versuche ein kleines Testprogramm mit einen Timer zu schreiben.
    Leider sind die paar Zeilen schon zu viel für mich.
    Der Bildschirm bleibt schwarz, es wird nicht mal das Editierfeld angezeigt.

    Kann mir jemand einen Hinweis geben was ich falsch mache, danke?

    Funktion des Programms :
    eine Zahl soll in einem Editierfeld alle 3 Sek. um 1 erhöht werden.

    Code :
    PHP:
    package de.Timertest;

    import java.util.Timer;
    import java.util.TimerTask;

    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.EditText;

    public class 
    TimerTestActivity extends Activity {
        public 
    Timer t;
        public static 
    EditText ausgabe;
        
    /** Called when the activity is first created. */
        
    @Override
        
    public void onCreate(Bundle savedInstanceState) {
            
    super.onCreate(savedInstanceState);
            
    setContentView(R.layout.main);

            
    ausgabe    = (EditTextthis.findViewById(R.id.ausgabe);
            
            
    t= new Timer();
            
    t.schedule(new Zeitgeber(), 03*1000);
        }
    }

    class 
    Zeitgeber extends TimerTask{
          public 
    void run(){
              
    int wert Integer.valueOfTimerTestActivity.ausgabe.getText().toString() ) +1;
              
    TimerTestActivity.ausgabe.setText(wert);
          }
        }
     
  2. Unicate, 24.05.2012 #2
    Unicate

    Unicate Android-Experte

    Beiträge:
    473
    Erhaltene Danke:
    57
    Registriert seit:
    09.08.2010
    Wenn das Editierfeld nicht angezeigt wird, dann hast du es evtl in der xml auf visibility="gone" gesetzt?
    Oder das passiert mir manchmal, wenn ich statt vertical horizontale Orientation eingestellt hatte.
    Wird es in der xml ansicht angezeigt?
     
  3. keinbrain, 24.05.2012 #3
    keinbrain

    keinbrain Fortgeschrittenes Mitglied

    Beiträge:
    316
    Erhaltene Danke:
    21
    Registriert seit:
    07.03.2012
    Ums kurz zu machen, der timer thread kann nicht auf den ui thread zugreifen, versuchs mal mit nem handler. Bin z Zt. nur mit dem ipod im internet, wenn du willst poste ich heute abend ein codebeispiel :)
     
  4. Unicate, 24.05.2012 #4
    Unicate

    Unicate Android-Experte

    Beiträge:
    473
    Erhaltene Danke:
    57
    Registriert seit:
    09.08.2010
    Stimmt, die Aktualisierung des EditText-Feldes sollte noch synchronisiert werden.

    PHP:
    class Zeitgeber extends TimerTask
          public 
    void run(){ 
              
    int wert Integer.valueOfTimerTestActivity.ausgabe.getText().toString() ) +1
              
    Message msg Message.obtain();
              
    msg.arg1 wert;
              
    _synchronizer.sendMessage(msg);
          } 
        }  
    private 
    Handler _synchronizer = new Handler() {
        public 
    void handleMessage(Message msg) {
              
    // "" ist wichtig, damit der text nicht faelschlicherweise als res interpretiert wird.
              
    TimerTestActivity.ausgabe.setText(""+msg.arg1);
        }
    };
     
    Zuletzt bearbeitet: 25.05.2012
  5. keinbrain, 24.05.2012 #5
    keinbrain

    keinbrain Fortgeschrittenes Mitglied

    Beiträge:
    316
    Erhaltene Danke:
    21
    Registriert seit:
    07.03.2012
    Gut da unicate ja jetzt ein beispiel gepostet hat brauch ich ja nicht mehr ^^
     
  6. K.Raul, 24.05.2012 #6
    K.Raul

    K.Raul Threadstarter Neuer Benutzer

    Beiträge:
    4
    Erhaltene Danke:
    0
    Registriert seit:
    23.05.2012
    Danke für die Antworten.

    Leider bekomme ich bei der Zeile private void Handler _synchronizer = new Handler() { Fehler angezeigt.

    Ich werde am WE versuchen den Fehler genauer einzukreisen.
     
  7. Unicate, 25.05.2012 #7
    Unicate

    Unicate Android-Experte

    Beiträge:
    473
    Erhaltene Danke:
    57
    Registriert seit:
    09.08.2010
    Ja, da darf natürlich kein void in der Zeile stehen.

    Hab das mal eben korrigiert.
     

Diese Seite empfehlen