Android: java.lang.ClassCastException: com.android.layoutlib.bridge.android.BridgeContext 无法转换为 android.app.Activity"
Android: java.lang.ClassCastException: com.android.layoutlib.bridge.android.BridgeContext cannot be cast to android.app.Activity"
这些是详细的问题:
java.lang.ClassCastException: com.android.layoutlib.bridge.android.BridgeContext cannot be cast to android.app.Activity
at io.jchat.android.view.LoginView.onMeasure_Original(LoginView.java:123);
at io.jchat.android.view.LoginView.onMeasure(LoginView.java) ;
我的代码是:
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int height = MeasureSpec.getSize(heightMeasureSpec);
mContext = getContext();
Activity activity = (Activity)mContext;
activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
int statusBarHeight = rect.top;
activity.getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenHeight = dm.heightPixels;
int diff = (screenHeight - statusBarHeight) - height;
if(mListener != null){
mListener.onSoftKeyboardShown(diff);
}
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
作为一名新生,我渴望得到你的帮助。谢谢!
Class com.android.layoutlib.bridge.android.BridgeContext
不扩展 android.app.Activity
,这是 执行转换所需的条件。请检查 类 之间的关系。 Activity activity = (Activity)mContext;
不行。
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int height = MeasureSpec.getSize(heightMeasureSpec);
int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
int statusBarHeight = 0;
if (resourceId > 0) {
statusBarHeight = getResources().getDimensionPixelSize(resourceId);
}
dm = getResources().getDisplayMetrics();
int screenHeight = dm.heightPixels;
int diff = (screenHeight - statusBarHeight) - height;
if(mListener != null){
mListener.onSoftKeyboardShown(diff);
}
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
这些是详细的问题:
java.lang.ClassCastException: com.android.layoutlib.bridge.android.BridgeContext cannot be cast to android.app.Activity
at io.jchat.android.view.LoginView.onMeasure_Original(LoginView.java:123);
at io.jchat.android.view.LoginView.onMeasure(LoginView.java) ;
我的代码是:
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int height = MeasureSpec.getSize(heightMeasureSpec);
mContext = getContext();
Activity activity = (Activity)mContext;
activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
int statusBarHeight = rect.top;
activity.getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenHeight = dm.heightPixels;
int diff = (screenHeight - statusBarHeight) - height;
if(mListener != null){
mListener.onSoftKeyboardShown(diff);
}
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
作为一名新生,我渴望得到你的帮助。谢谢!
Class com.android.layoutlib.bridge.android.BridgeContext
不扩展 android.app.Activity
,这是 执行转换所需的条件。请检查 类 之间的关系。 Activity activity = (Activity)mContext;
不行。
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int height = MeasureSpec.getSize(heightMeasureSpec);
int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
int statusBarHeight = 0;
if (resourceId > 0) {
statusBarHeight = getResources().getDimensionPixelSize(resourceId);
}
dm = getResources().getDisplayMetrics();
int screenHeight = dm.heightPixels;
int diff = (screenHeight - statusBarHeight) - height;
if(mListener != null){
mListener.onSoftKeyboardShown(diff);
}
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}