是這樣的:
我在做自定義Toast的時候
需要用LayoutInflater來獲取我自定義Toast的布局
但是報錯了,報錯資訊如下:java.lang.IllegalStateException: System services not available to Activities before onCreate()
而報錯的代碼是:
View layout = LayoutInflater.from(this).inflate(R.layout.toast_layout, (ViewGroup)findViewById(R.id.toast), true);
百度過后我也大約知道是要在onCreate()里實體化,但是我是自定義的Toast類,并沒有onCreate函式,我該怎么辦?求各位大佬解答一下……
uj5u.com熱心網友回復:
為什么一個人也沒有QAQ求大佬解答啊uj5u.com熱心網友回復:
你這是要自定義Toast么?如果是的話不用繼承Activity啊,寫一個工具類就行了uj5u.com熱心網友回復:
QAQ但是如果不繼承Activity的話我實體化Inflater的時候會報錯說找不到這個方法,不過現在已經解決了,謝謝大佬
uj5u.com熱心網友回復:
QWQ謝謝各位大佬,問題已經解決了,解決方法如下:我干脆直接寫了個自己的MyActivity類,然后在里面寫上自定義Toast的方法,然后讓自己的Activity都繼承我自己的MyActivity類,然后我還準備在MyActivity類的onCreate里設定了沉浸式狀態欄,這下是一舉兩得,直接解決了困擾我好久的倆問題
uj5u.com熱心網友回復:
感覺是from(this)的問題,應該是傳遞過來的activityuj5u.com熱心網友回復:
可是from的引數是一個Content型別的引數……uj5u.com熱心網友回復:
可是from的引數是Content型別的,因為我沒接觸過這種型別,所以不知道怎么獲取,但是我隨便填了個this還成功了,所以我就這么用了……
uj5u.com熱心網友回復:
你這代碼完全被玩壞了activity是不允許有建構式的,并且不允許new出來,連犯2個錯誤。
new出來的activity沒有任何作用,所以在inflater需要context的時候直接跪了。
自定義toast直接參考原始碼寫個靜態工具類就行了
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/101391.html
標籤:Android
上一篇:Android Can't convert value at index 7 to dimension: type=0x1
下一篇:離線圖片文字識別
