【问题标题】:snackbarmanaegr cant detect activity in adaptersnapbarmanaegr 无法检测到适配器中的活动
【发布时间】:2016-03-29 14:11:17
【问题描述】:

在我的滑动适配器中使用snackbarmanager 时出现错误,如下所示:

12-23 10:53:18.298 5285-5285/com.tosa.university E/SnackbarManager:无法从 Snackbar 的上下文中获取活动。尝试调用 #show(Snackbar, Activity) 代替 java.lang.ClassCastException:com.tosa.university.AppController 无法转换为 android.app.Activity 在 com.nispok.snackbar.SnackbarManager.show(SnackbarManager.java:36) 在 com.tosa.university.SampleAdapter.onSwipe(SampleAdapter.java:209) 在 com.tr4android.recyclerviewslideitem.SwipeAdapter$1.onSwipeRight(SwipeAdapter.java:56) 在 com.tr4android.recyclerviewslideitem.SwipeItem.dispatchOnSwipeRight(SwipeItem.java:325) 在 com.tr4android.recyclerviewslideitem.SwipeItem$DragHelperCallback.onViewDragStateChanged(SwipeItem.java:389) 在 android.support.v4.widget.ViewDragHelper.setDragState(ViewDragHelper.java:874) 在 android.support.v4.widget.ViewDragHelper$2.run(ViewDragHelper.java:335) 在 android.os.Handler.handleCallback(Handler.java:739) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:135) 在 android.app.ActivityThread.main(ActivityThread.java:5272) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:909) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:704)

【问题讨论】:

  • 贴出你的小吃店代码
  • 你必须在要显示snackbar的Activity位置传递layoutname,例如Snackbar.make(relativeLayoutParent, e.toString(), Snackbar.LENGTH_SHORT).show();跨度>
  • 这是我的代码: SnackbarManager.show( Snackbar.with(mContext).type(SnackbarType.MULTI_LINE) .text(s).textColor(Color.WHITE).color(Color.parseColor(" #ffc107")));
  • 编辑您的问题并添加您的 SwipeAdapter 类,以了解如何解决您的问题。
  • @RRR 这是我的代码: SnackbarManager.show( Snackbar.with(mContext).type(SnackbarType.MULTI_LINE) .text(s).textColor(Color.WHITE).color(Color.parseColor ("#ffc107")));

标签: android snackbar


【解决方案1】:

根据错误日志:

java.lang.ClassCastException: com.tosa.university.AppController 不能 被强制转换为 android.app.Activity

您的问题是因为使用了错误的上下文而不是活动上下文。更改您的 mContext 初始化以在 SwipeAdapter 中获取正确的 Activity 上下文。

【讨论】:

  • 是的,我将活动中的 getapplicationcontext() 更改为 Myclass.this,它就像一个魅力谢谢 :)
猜你喜欢
  • 2022-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-31
  • 2023-04-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多