Progressbar füllen ?? Java-Android

Anleitungen usw. rund um Java, Tutorials halt.

Moderator: wegus

Titan07
Beiträge: 1
Registriert: 30.10.2012, 09:49

Progressbar füllen ?? Java-Android

Beitragvon Titan07 » 30.10.2012, 09:57

Hallo,
mein "einfaches" Problem liegt peinlicherweise darin, dass ich nicht weiß wie ich die Progressbar zum füllen bringe. Das Program läuft, zählt zurück genau wie die Progressbar aber ich hätte gern dass, die Anzeige von Progressbar nicht immer weniger und weniger wird sondern sich nach&nach füllt.

Vielen Dank schonmal für eure Hilfe und Tipps!

Hier ist das Programm;

Code: Alles auswählen

package com.example.guitimer;

import com.example.guitimer.R;

import android.app.Activity;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.Button;
import android.widget.TextView;
import android.widget.ProgressBar;
import android.media.MediaPlayer;



public class MainActivity extends Activity {
   
   private static final String TAG = "MainActivity";
   public int eingabe;
   
   
   Button but;
   TextView time;
   EditText givenTime;
   ProgressBar progBar;
   MediaPlayer alarmSound;
    MyCounter timer = new MyCounter(10000,1000);

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.d(TAG, "onCreate():  ");
       
     
        but = (Button)findViewById(R.id.button);
        givenTime = (EditText)findViewById(R.id.editTime);
        time = (TextView)findViewById(R.id.time);
        progBar = (ProgressBar) findViewById(R.id.progressBar1);
       
   
        givenTime.setText("10");
        String standartEingabe = givenTime.getText().toString();
        time.setText(standartEingabe);
        alarmSound = MediaPlayer.create(this, R.raw.alarm);
       
       
             
       
     
        but.setOnClickListener(new OnClickListener() {         
           public void onClick(View v) {
              
              String str = but.getText().toString();
              Log.d(TAG, " onClick()  ");
              
              if (str.equals("Start Timer")) {
                 
                 
                 int eingabe = Integer.valueOf(givenTime.getText().toString());
                 progBar.setMax(eingabe);
                 timer = new MyCounter(eingabe*1000,1000);
                 but.setText("Stop Timer");
                  timer.start();
                 
              }
                 
                  else if (str.equals("Alarm aus")) {
                 alarmSound.pause();
                 alarmSound.seekTo(0);
                 timer.cancel();
                 but.setText("Start Timer");
              }
              
              else {
                 timer.cancel();
                 but.setText("Start Timer");
              }
           
           }
        });
       
       
                             
    }
   
   
    public class MyCounter extends CountDownTimer {
       
       public MyCounter(long millisInFuture, long countDownInterval) {
          super(millisInFuture, countDownInterval);
       }
       
       @Override
       public void onFinish() {
          Log.d(TAG, " Counter onFinish()  ");
          time.setText("0");
          progBar.setProgress(0);
          but.setText("Alarm aus");
          alarmSound.setLooping(true);
          alarmSound.start();
       }
       
       @Override
       public void onTick(long millisUntilFinished) {
          Log.d(TAG, " Counter onTick()  " + (millisUntilFinished/1000));
          time.setText((millisUntilFinished/1000)+"");
          long p = ((millisUntilFinished/1000));
          progBar.setProgress((int)p);
       }
    }


}

Benutzeravatar
nigjo
Beiträge: 584
Registriert: 08.09.2009, 09:43
Wohnort: Aachen
Kontaktdaten:

Re: Progressbar füllen ?? Java-Android

Beitragvon nigjo » 05.11.2012, 10:42

Hi

Ohne mir den Quelltext jetzt genau anzuschauen, lässt sich die Richtung leicht umdrehen in dem du statt "setProgress(aktuellerWert);" einfach "setProgress(100-aktuellerWert);" aufrufst. Vorausgesetzt du hast Werte von 0 bis 100. Ansonsten kannst du auch einfach eine Variable oder Konstante "MAX_VALUE" statt der "100" verwenden.

Gruß
Jens
Man sollte seine Werkzeuge kennen. Ansonsten haut man sich mit dem Hammer nur auf die Finger.

--
NetBeans Certified Engineer - Java Getriebe


Zurück zu „Java - Tutorials“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast