作者ms0561188 (說說TIES OR CONDITIONS )
看板AndroidDev
標題[問題] 關於context一些相關問題
時間Wed Jul 16 15:31:22 2014
各位大大好 最近剛學習android
有遇到以下的問題,麻煩請高手幫忙解救一下
1.最近有點不懂context到底是甚麼,有google了一下似乎是屬於Activity的父類別
例如 Toast的寫法可以寫成
toast = Toast.makeText(getApplicationContext(),
"文字", Toast.LENGTH_LONG);
卻又可以寫成
Toast function = Toast.makeText(MainActivity.this,"文字",Toast.LENGTH_SHORT);
想知道MainActivity.this和getApplicationContext()的差別
2.也是類似的問題
下段程式執行會出現錯誤
AlertDialog.Builder aa = new AlertDialog.Builder(getApplicationContext())
而下段程式卻會成功
AlertDialog.Builder aa = new AlertDialog.Builder(MainActivity.this);
想知道為什麼
附上log
android.view.WindowManager$BadTokenException: Unable to add window -- token
null is not for an application
煩請高手幫忙解惑 感恩不盡
--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.61.163.55
※ 文章網址: http://www.ptt.cc/bbs/AndroidDev/M.1405495888.A.022.html
→ erttyy8821:拿到Contex的對象不同 07/16 15:52
→ ms0561188:請問甚麼是對象不同,我不懂哪時候該用哪個.. 07/16 16:09
→ erttyy8821:activityContext & applicationContext 07/16 16:47
→ ms0561188:所以要看我的程式是屬於哪個父類別嗎? 07/16 17:58
推 Deltaguita: 應該說acitvity的context 才有權限跳dailog 07/16 20:09
→ Deltaguita:如果applicationContext可以跳dialog是蠻可怕的 使 07/16 20:30
→ Deltaguita:用者體驗會很差 07/16 20:30
推 KeySabre:有興趣可以爬window manager的機制 懶得抓整包的話 可 07/17 03:01
→ KeySabre:以用grepcode網站 07/17 03:01
→ ms0561188:\感謝!! 07/21 09:18