2012-12-02 70 views
1

我有一個服務,可以通過2個活動調用「啓動服務」,並且我想在服務啓動時更改圖像視圖,但是當我試圖「findViewById」時出現此錯誤。findViewById在服務

The method findViewById(int) is undefined for the type Main 

我該怎麼辦?

回答

5

您應該從活動中更改ImageView,而不是服務。

+0

,因爲我已經2個活動,我寧願改變「 imageView'從服務。有沒有解決方法? –

+0

@Reza_Rg:您無法從「服務」更新您的用戶界面。請從您的活動中更新您的用戶界面。 – CommonsWare

0

你可以通過上下文的服務,做做到這一點:

mContext.findViewById(int) 

但是,如果你打電話通過意圖,靜態方法或AIDL活動的功能,這將是更符合邏輯的(我建議意圖或靜態),讓我們說「changeImage()」,讓活動辦的所有視圖處理工作

0

你應該區分findviewByid(int)Layout.inflate(int),所以我的建議是:

  • 獲得活動父視圖與Layout.inflate(int)

  • 使用父視圖調用findViewById(int)

試試,幸福代碼:)

+0

如何在Activity中選擇父視圖?你可以說得更詳細點嗎? –