2014-02-12 106 views
1

我有處理程序的問題。創建後,我想發送消息給處理程序,但方法sendEmptyMessage()無法解析。處理程序必須更新自定義列表適配器。處理程序sendEmptyMessage()無法解析

有我的代碼:

private Handler mHandler; 

mHandler = new Handler() { 
     @Override 
     public void close() {} 

     @Override 
     public void flush() {} 

     @Override 
     public void publish(LogRecord record) {} 

     public void handleMessage(Message m) 
     { 
      catalogAdapter.notifyDataSetChanged(); 
     } 
    }; 
mHandler.sendEmptyMessage(0); 
+0

「無法解決」是什麼意思?問題是什麼?接收郵件有問題嗎? – Massimo

+0

@Massimo,消息不會發送,因爲在Handler類中找不到方法。 – BoBaH6eToH

+1

你確定你導入的類是android.os.Handler嗎?該類有方法sendEmptyMessage(int) – Massimo

回答

9

java.util.logging.Handler是錯誤的類導入。你想確保你進口android.os.Handler

+0

是的,你說得對。謝謝。 – BoBaH6eToH

-1

mHandler.sendEmptyMessage(0);是錯誤的,因爲沒有方法:

public void handleMessage(int m); 

必須是:

mHandler.sendEmptyMessage(null); 
+0

我不明白你爲什麼說它是錯誤的:從我的角度來看http://developer.android.com/reference/android/os/Handler.html#sendEmptyMessage%28int%29 sendEmptyMessage(null)將產生編譯錯誤。 –

+0

是的,你說得對,這是我的錯...... – Maxim

0

我不明白爲什麼你不能解決 sendEmptyMessage方法。也許你有一個錯誤的進口,檢查。

在一個側面說明,你只需要發佈一個消息給你處理程序,所以:

new Handler(Looper.getMainLooper()).post(
new Runnable() { 
    @Override 
    public void run() { 
     catalogAdapter.notifyDataSetChanged(); 
    } 
}); 

甚至可能創建一個後臺線程。

由於Massimo說,你的進口應該是:

import android.os.Handler; 
+0

是的,進口錯誤。謝謝。 – BoBaH6eToH

相關問題