我剛剛開始學習android編程,並對getResources()方法提出了疑問。 我注意到,當我創建一個資源對象的所有我需要做的就是:
Resources res = getResources();
第一個疑問是下面爲什麼我已經這樣做,我不能使用Java關鍵字新?我不應該這樣做: Resources res = new Resources();
第二個疑問如下:在我的文件的頂部我已經導入了Resources類。 import android.content.res.Resources;
現在我讀了android api,它說getResources()是一個公共抽象方法,如果它是抽象的類實現它?如果不聲明爲靜態,我怎麼能簡單地將它稱爲輸入getResources()?getResources()的實現Android
2
A
回答
3
您的活動擴展類android.app.Activity這又擴展類android.content.Context(在類層次上三級)。類Context
聲明抽象方法getResources()這意味着您的活動子類繼承該方法,並且可以從您的onCreate()
方法(例如)中調用它。
方法getResources()
被聲明爲在Context
類,但在類層次結構(android.view.ContextThemeWrapper)中間體類之一的抽象提供用於該方法的實現。
此外,這意味着創建Resources
對象不是你的責任;它是由框架來完成的。
1
getResources實際上是一種您可以從Context中訪問的方法。所以,你真的可以認爲這是:
context.getResources()
你的Activity類是在這種情況下你的背景,這就是爲什麼你可以用的語法調用它:
getResources()
http://developer.android.com/reference/android/content/Context.html#getResources%28%29
從這些文檔:
有關應用程序環境的全局信息的接口。這個 是一個抽象類,其實現由Android 系統提供。它允許訪問特定應用的資源和 類,以及向上調用應用程序級的操作,如 開展活動,廣播和接收意圖等
+0
編輯時間太晚。無論如何,答案都是用這個答案更新的。感謝您的澄清! –
相關問題
- 1. 如何實現java.lang.Classloader getResources()?
- 2. java android getResources()。getIdentifier()
- 3. 的Android - getResources()和靜態
- 4. getResources如何()的getString()的作品的Android
- 5. Android的XML dataHandler getResources()是未定義的
- 6. 在android中獲取getResources()的bug?
- 7. 來自不同類的Android getResources
- 8. 的Android getResources /則getIdentifier不返回ID
- 9. 使用資源getResources();在AppWidget的Android
- 10. ZoomtoSpan Android的實現
- 11. 鏌鋣getresources的foreach
- 12. 實現ScrollView Android?
- 13. Android:實現ViewHolder
- 14. Android setonitemclicklistener實現
- 15. 實現與Android
- 16. Android ZXing實現
- 17. Android:實現twitPic
- 18. Android Widget實現
- 19. 實現在Android
- 20. android gridlayout實現
- 21. Android TriggerEventListener實現
- 22. Android MVP實現
- 23. Android Viewholder實現
- 24. MVP Android實現
- 25. Resources.getSystem()vs getResources()
- 26. getResources()。getStringArray(R.array.Passing_own_variable);
- 27. getResources()。getIdentifier問題
- 28. FileResultException和getResources
- 29. getResources();錯誤
- 30. getResources返回null
嗨@devconsole。我看了一下ContextThemeWrapper.java源文件,並沒有找到getResources()方法的實現。只有調用'super.getResources()'的重載方法'getResources()'。你知道另一個實現'getResources()'的類嗎?謝謝。 – janzoner
請參閱我的問題[這裏](http://stackoverflow.com/q/23933397/3343299)如果你有興趣請。 – janzoner
@janzoner關鍵是'ContextThemeWrapper'提供'Activity'繼承的'getResources()'的實現。這回答了原來的問題。那麼我的回答有什麼問題? – devconsole