tools:context=".MainActivity的作用,
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="@string/hello_world" tools:context=".MainActivity" />
一直對於 tools:context=".MainActivity"這句不懂,今天查了下,發現是這樣的:
tools:context="activity name"這一句不會被打包進APK。只是ADT的Layout Editor在你當前的Layout檔案裡面設定對應的渲染上下文,說明你當前的Layout所在的渲染上下文是activity name對應的那個activity,如果這個activity在manifest檔案中設定了Theme,那麼ADT的Layout Editor會根據這個Theme來渲染你當前的Layout。就是說如果你設定的MainActivity設定了一個Theme.Light(其他的也可以),那麼你在可視化布局管理器裡面看到的背景阿控制項阿什麼的就應該是Theme.Light的樣子。僅用於給你看所見即所得 (WYSIWYG)的效果而已。
android中的context是起什作用的?
Context字面意思是上下文,位於framework package的android.content.Context中,其實該類為LONG型,類似Win32中的Handle控制代碼。很多方法需要通過 Context才能識別調用者的執行個體:比如說Toast的第一個參數就是Context,一般在Activity中我們直接用this代替,代表調用者的執行個體為Activity,而到了一個button的onClick(View view)等方法時,我們用this時就會報錯,所以我們可能使用ActivityName.this來解決,主要原因是因為實現Context的類主要有Android特有的幾個模型,Activity以及Service。
Context提供了關於應用環境全域資訊的介面。它是一個抽象類別,它的執行被Android系統所提供。它允許擷取以應用為特徵的資源和類型。同時啟動應用級的操作,如啟動Activity,broadcasting和接收intents。
更新ADT20 ,出現tools:context=" " ,解
tools:context="activity name"這一句不會被打包進APK。只是ADT的Layout Editor在你當前的Layout檔案裡面設定對應的渲染上下文,說明你當前的Layout所在的渲染上下文是activity name對應的那個activity,如果這個activity在manifest檔案中設定了Theme,那麼ADT的Layout Editor會根據這個Theme來渲染你當前的Layout。就是說如果你設定的MainActivity設定了一個Theme.Light(其他的也可以),那麼你在可視化布局管理器裡面看