看板 AndroidDev 關於我們 聯絡資訊
簡單說一下context 他是activiy 、 service 、跟application 的父類別 如果你要用到跟"android"有關非一般JAVA的資源你都需要使用到context 例如你原文中舉例的 Toast、Dialog 這兩種andorid提示訊息 或是Notification manager、或是字串圖片等資源(getResoucre)等等 我會幫他當成是一個橋樑,我們可以透過他在andorid系統上做很多事情 而你文章提到的為何Toast可以在使用applicationCnontex的時候出現 Dialog 不行的原因其實很簡單,使用的contex必須是一個在當前的activity 你總不希望你看文章看到一半, 或是看影片看到一半突然有其他APP跳出dialog打擾你吧! ※ 引述《ms0561188 (說說TIES OR CONDITIONS )》之銘言: : 各位大大好 最近剛學習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), 來自: 118.160.219.62 ※ 文章網址: http://www.ptt.cc/bbs/AndroidDev/M.1405523678.A.722.html
ms0561188:謝謝大大耐心幫我解答!!! 不過我是初學者~ 可能還需要 07/17 10:34
ms0561188:領會一下才會比較懂 07/17 10:34
rj9rj9123:推 07/19 12:40