2015-12-17 45 views
1

我創建了customview,然後從上下文獲取應用程序。但它顯示錯誤: java.lang.ClassCastException:com.android.layoutlib.bridge.android.BridgeContext不能轉換到com.ibsv.cheerupkpi.utilities.CheerupKPIApplicationBridgecontext無法轉換爲應用程序

這是我的代碼:

public CheerupKPIApplication mApplication; 

public MenuBottomBar(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 

LayoutInflater.from(context).inflate(R.layout.menu_bottom_bar, this); 

mApplication = (CheerupKPIApplication) context.getApplicationContext(); 

}

請幫幫我!

+0

這是Android Studio中的佈局編輯器,對不對? – Karakuri

+0

是的,它在Android Studio的佈局編輯器中。 –

回答

1

Android Studio中的佈局編輯器僅使用某種模擬上下文來模擬佈局膨脹。它實際上並不像真實設備上那樣具有真實的上下文,並且由於沒有運行應用程序(甚至不在設備的運行時),所以它肯定沒有應用程序上下文。

您可以在自定義視圖中使用isInEditMode(),以避免運行在佈局編輯器中無法運行的代碼。在這種情況下,你需要跳過線

mApplication = (CheerupKPIApplication) context.getApplicationContext();

以及任何需要使用mApplication做一個初步措施,佈局和繪製。

+0

如果我忽略佈局編輯器上的這個問題,它仍然可以在模擬器和真實設備上正常工作。 –

+0

@DuyenHangKim這是一個問題,還是你只是肯定它適合你? – Karakuri

+0

我測試過,它爲我工作。 –

相關問題