Использовать обработчик обновлений Asynctask UI
За 1 час до того, как я спросил это: Обновите ListView Textview vom Asyntask
Теперь у меня есть следующая проблема. Я попытался решить проблему с обработчиком:
Я вызываю свою Asyntask из моего пользовательского ListViewAdapter:
Bundle bndl = new Bundle();
bndl.putLong("startTime", 66);
timeCounter counter = new timeCounter(this, holder.txtTimeTo);
counter.execute(bndl);
Вот мой Asynctask:
public class timeCounter extends AsyncTask<Bundle, Void, String> {
private String jsonResult;
ArrayList<club> clublist= new ArrayList<club>();
private String url = "http://ivenda.de/nyte/getclubs.php";
public ticketAdapter actv;
private final Handler mHandler = new Handler();
TextView txtTime = null;
public timeCounter(ticketAdapter ac, TextView txtTime)
{
actv = ac;
}
@Override
protected String doInBackground(Bundle... getData) {
long restTime = getData[0].getLong("startTime");
while(restTime>0) {
SystemClock.sleep(1000);
restTime = restTime - 1;
setTime(restTime);
}
return null;
}
public void setTime(final long restTime) {
final functions func = new functions();
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
txtTime.setText(func.getTimeText(restTime));
}
}, 0);
}
}
После ожидания 1 сек. я получаю эту ошибку:
03-27 22:09:16.696: E/AndroidRuntime(4154): FATAL EXCEPTION: main
03-27 22:09:16.696: E/AndroidRuntime(4154): java.lang.NullPointerException
03-27 22:09:16.696: E/AndroidRuntime(4154): at
ivenda.pack.timeCounter$1.run(timeCounter.java:68)
03-27 22:09:16.696: E/AndroidRuntime(4154): at
android.os.Handler.handleCallback(Handler.java:725)
03-27 22:09:16.696: E/AndroidRuntime(4154): at android.os.Handler.dispatchMessage(Handler.java:92)
03-27 22:09:16.696: E/AndroidRuntime(4154): at android.os.Looper.loop(Looper.java:137)
03-27 22:09:16.696: E/AndroidRuntime(4154): at android.app.ActivityThread.main(ActivityThread.java:5041)
03-27 22:09:16.696: E/AndroidRuntime(4154): at java.lang.reflect.Method.invokeNative(Native Method)
03-27 22:09:16.696: E/AndroidRuntime(4154): at java.lang.reflect.Method.invoke(Method.java:511)
03-27 22:09:16.696: E/AndroidRuntime(4154): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
03-27 22:09:16.696: E/AndroidRuntime(4154): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
03-27 22:09:16.696: E/AndroidRuntime(4154): at dalvik.system.NativeStart.main(Native Method)
У кого-нибудь есть идеи?
Спасибо за помощь!:)
1 ответ
Ваш TextView txtTime является нулевым. Вы должны сказать ему, какой TextView вы хотите обновить