Bridgecontext无法强制转换为Application

时间:2015-12-17 03:56:15

标签: android

我创建了customview,然后从上下文中获取Application。但它显示错误: java.lang.ClassCastException:com.android.layoutlib.bridge.android.BridgeContext无法强制转换为com.ibsv.cheerupkpi.utilities.CheerupKPIApplication

这是我的代码:

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();

}

请帮助我!

1 个答案:

答案 0 :(得分:1)

Android Studio中的布局编辑器仅使用一种模拟上下文来模拟布局膨胀。它实际上并没有像在真实设备上那样拥有真正的上下文,并且由于没有应用程序在运行,因此它肯定没有应用程序上下文(即使在设备的运行时也没有)。

您可以在自定义视图中使用isInEditMode(),以避免运行在布局编辑器中无法运行的代码。在这种情况下,您需要跳过

mApplication = (CheerupKPIApplication) context.getApplicationContext();

以及需要使用mApplication进行初始测量,布局和绘制的任何内容。