java this context,java – DecorContext强制转换

我有一个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有关.目前还不清楚该怎么做.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值