我有一个NavActivity类
public class NavActivity extends Activity implements OnItemLongClickListener {
....
}
在另一个类的函数中,我有以下代码:
LocalActivityManager activityManager = this.getLocalActivityManager();
Window window = activityManager.startActivity(tag, intent);
final View view = window.getDecorView();
Context decorContext = view.getContext();
NavActivity nextActivity;
nextActivity = (NavActivity)decorContext;
在以前的Android版本中,一切都运行良好.但在Android 7.0中.它在此行停止并显示以下错误:
引起:java.lang.ClassCastException:com.android.internal.policy.DecorContext无法强制转换为xxxxx.nav.NavActivity
不明白为什么从DecorContext转换为Activity在Android 7.0中不再起作用.
最佳答案 对于这个具体的例子,我找到了以下解决方案:
我收到了所需的活动:
nextActivity = (NavActivity)activityManager.getCurrentActivity();
但是在我的项目中,无论如何我需要从Activity接收正确的View,然后从Activity接收View.
以前,getDecorView运行良好:
View view = activity.getWindow().getDecorView();
然后回来:
Activity activity = (Activity) view.getContext();
但是在Android 7(Nougat)中,DecorView不再知道它与哪个Activity有关.目前还不清楚该怎么做.