
swa00
Enthusiast
Hallo liebe Gemeinde,
ich entwickle zwar schon über 20 Jahre in C++ aber bei so manchen Dingen im Android SDK bekomme ich nicht so hin , wie ich mir das vorstelle
Ich habe das Problem ,dass ich in Timer Routinen oder einem Thred keinen Zugriff mehr auf eine TextView Variable habe, warum nicht ? ( null)
mach ich folgendes bei einem Callback des GPS sensors
TextView tview = (TextView) findViewById(R.id.textfeld);
tview.setText("Bla Bla");
alles Prefekt !!!
Habe ich z.b einen Timer
class UpdateTimeTask extends TimerTask
{
public void run()
{
long millis = System.currentTimeMillis() - 200;
int seconds = (int) (millis / 1000);
int minutes = seconds / 60;
seconds = seconds % 60;
TextView tview = (TextView) findViewById(R.id.textfeld);
tview.setText("Bla bla");
}
}
oder in einem Thread
@Override
public void run()
{
try
{
while(true)
{
sleep(1000);
TextView tview = (TextView) findViewById(R.id.textfeld);
tview.setText("Bla Bla");
}
}
catch(InterruptedException e){}
}
dann bekomme ich einen Vollabsturz beim zugriff auf den TextView
Den gibt es einfach nicht
Ich kann machen was ich will , also Globale variable , local etc etc .. immer in einem Thread oder in einem Time habe ich keinen Zugriff mehr auf Texview
Warum ist das so, oder was mache ich grundsätzlich falsch in meinem Überlegungen ?
Vielen lieben Dank mal im Voraus für euere Antworten
lg
Stefan
gegeben : Android SDK unter Eclipse
ich entwickle zwar schon über 20 Jahre in C++ aber bei so manchen Dingen im Android SDK bekomme ich nicht so hin , wie ich mir das vorstelle
Ich habe das Problem ,dass ich in Timer Routinen oder einem Thred keinen Zugriff mehr auf eine TextView Variable habe, warum nicht ? ( null)
mach ich folgendes bei einem Callback des GPS sensors
TextView tview = (TextView) findViewById(R.id.textfeld);
tview.setText("Bla Bla");
alles Prefekt !!!
Habe ich z.b einen Timer
class UpdateTimeTask extends TimerTask
{
public void run()
{
long millis = System.currentTimeMillis() - 200;
int seconds = (int) (millis / 1000);
int minutes = seconds / 60;
seconds = seconds % 60;
TextView tview = (TextView) findViewById(R.id.textfeld);
tview.setText("Bla bla");
}
}
oder in einem Thread
@Override
public void run()
{
try
{
while(true)
{
sleep(1000);
TextView tview = (TextView) findViewById(R.id.textfeld);
tview.setText("Bla Bla");
}
}
catch(InterruptedException e){}
}
dann bekomme ich einen Vollabsturz beim zugriff auf den TextView
Den gibt es einfach nicht
Ich kann machen was ich will , also Globale variable , local etc etc .. immer in einem Thread oder in einem Time habe ich keinen Zugriff mehr auf Texview
Warum ist das so, oder was mache ich grundsätzlich falsch in meinem Überlegungen ?
Vielen lieben Dank mal im Voraus für euere Antworten
lg
Stefan
gegeben : Android SDK unter Eclipse