2010-09-20 2 views
0

У меня есть поток, который загружает данные из интернетаандроида: Handler из Runnable бросков Исключения нулевого указателя

public class Bp implements Runnable 
{ 
Handler myHandler; 
public void setHandler(Handler myHandler) 
{ this.myHandler=myHandler; } 
.... 
myHandler.sendEmptyMessage (0); 
} 

Там есть деятельность, которая должна быть обновлена ​​в соответствии с загруженными данными.

public class Hp extends Activity implements Runnable 
{ 
.... 
public Handler myHandler = new Handler() { 
    public void handleMessage(Message msg) { 
//TODO handle myHandler from "Bp" Thread  
//TODO remove Queue's View 
    if(m_adapter2.getCount()==6) 
    { 
    m_adapter2.remove (queue);   //removing view named queue from adapter 
    m_adapter2.notifyDataSetChanged(); 
    } 
    } 
}; 

Всякий раз, когда я бегу выше код я получаю NullPointer Exception .Please помочь мне обновить вид.

+0

У нас есть трассировка стека? Постскриптум именование переменных класса и временных переменных одинаково приводит к путанице! – fredley

+0

fredley Я пытаюсь использовать «myHandler» из потока Bp, чтобы отправитьMessage в Activity Hp для обновления пользовательского интерфейса. myHandler только что объявлен в Bp. Он обрабатывается в Activity Hp. Надеюсь, я в правильном направлении. – 100rabh

+0

SOLVED: просто написал код аккуратно, и он работал – 100rabh

ответ

-3

Решила проблему, переписав код аккуратно &. Он работал хорошо. Кажется, раньше были проблемы с настройкой Handler.

0

да, это правильно. Вы создаете обработчик в потоке BP .. но вам нужно создать его в контексте потока основного или графического интерфейса, работающего в HP, потому что MessageQueue основного/GUI-потока задается здесь, как вы обновляя его данными, полученными из другого потока.

Смежные вопросы