Zuerst möchte ich alle herzlich Begrüßen!
Ich möchte gerne in TextView dynamisch je 1 Sekunde den Wert ändern. Dies soll in einer Classe passieren in der eine run() Methode implementiert ist.
Classe:
class Counter implements Runnable {
private int timeCounter;
public void setTime(Functions obj) {
timeCounter = obj.getTime();
}
@Override
public void run() {
Functions f = new Functions();
f.functionStart();
while (timeCounter-- > 0) {
try {
Thread.sleep(1000);
// Kann ich hier überhaupt den Wert das TextView übergeben?
} catch (InterruptedException e) {
// TODO do what
e.printStackTrace();
}
}
f.functionStop();
}
}
Alles anzeigen
In einer zweiten Classe sind nur die Methoden:
public class Functions {
private Camera cameraObj = null;
public TextView mytext;
private int time = 0;
public void seekBarTime( MainActivity myMain) {
SeekBar sekBarTime = (SeekBar) myMain.findViewById(R.id.seekBarZeit);
mytext = (TextView) myMain.findViewById(R.id.textStatus);
sekBarTime.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
Functions f = new Functions();
f.setTime(time);
Counter setDataCounter = new Counter();
setDataCounter.setTime(f);
Thread threadCounter = new Thread(setDataCounter);
threadCounter.start();
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
functionStop();
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
time = progress;
}
});
}
public void functionStart() {
// do what
}
public void functionStop() {
// do what
}
public Camera getCameraObj() {
return cameraObj;
}
public void setCameraObj(Camera cameraObj) {
this.cameraObj = cameraObj;
}
public int getTime() {
return time;
}
public void setTime(int time) {
this.time = time;
}
}
Alles anzeigen
Hier die MainActivity
public class MainActivity extends Activity {
private static Camera cameraObj = null;
FunctionsFlash fun;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fun = new Functions();
fun.butOn(this);
fun.butOff(this);
fun.seekBarTime(this);
}
}
Alles anzeigen
Mein Problem ist folgender, egal was ich auch versuche erhalte ich immer eine NullPointerException. Ist die Umsetzung auf die gewählte Art überhaupt möglich? In den Classen ist zur Zeit keine weitere Implementierung des TextView bis auf Deklaration des TextViews und Zuweisung der ID aus der activity_main.
Danke schön!
P.S Ich bin leider noch ein Anfänger!