android - 我收到此错误。DraggableGridView 无法实例化

标签 android gridview draggable

我正在尝试制作一个应用程序以从 SD 卡中检索多个选定的图像到可拖动的 GridView 中。我在运行时收到以下错误。我的 xml 代码如下。 请帮我找到一个解决方案。

        <xml version="1.0" encoding="utf-8"?>
    <RelativeLayout 

        android:padding="2.0dip" 
        android:layout_width="fill_parent"
         android:layout_height="fill_parent" 
         android:keepScreenOn="true"
      xmlns:android="http://schemas.android.com/apk/res/android"

     >
        <LinearLayout 
            android:gravity="center" 
            android:orientation="vertical" 
            android:id="@+id/layout_button" 
            android:layout_width="fill_parent" 
            android:layout_height="fill_parent" 
            android:layout_above="@+id/ad1">
            <LinearLayout 
                android:gravity="center" 
                android:orientation="horizontal" 
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content" 
                android:layout_marginBottom="10.0dip">
                <Button 
                    android:id="@+id/buttonChoosePictures" 
                    android:background="@drawable/ingallery" 
                    android:layout_width="100.0dip" 
                    android:layout_height="100.0dip" />
                <Button 
                    android:id="@+id/buttonMusic" 
                    android:background="@drawable/inmusic" 
                    android:layout_width="100.0dip" 
                    android:layout_height="100.0dip" />
            </LinearLayout>
            <LinearLayout android:gravity="center" 
                android:orientation="horizontal" 
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content" 
                android:layout_marginTop="10.0dip">
                <Button 
                    android:id="@+id/buttonPreview" 
                    android:background="@drawable/inpreview" 
                    android:layout_width="100.0dip" 
                    android:layout_height="100.0dip" />
                <Button 
                    android:id="@+id/buttonSave" 
                    android:background="@drawable/insave" 
                    android:layout_width="100.0dip" 
                    android:layout_height="100.0dip" />
            </LinearLayout>
            <LinearLayout 
                android:gravity="center" 
                android:orientation="vertical" 
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content">
                <TextView 
                    android:textAppearance="?android:textAppearanceMedium" 
                    android:textColor="@android:color/white" 
                    android:id="@+id/textViewMessagetitle" 
                    android:visibility="gone" 
                    android:layout_width="wrap_content" 
                    android:layout_height="wrap_content" 
                    android:layout_marginTop="3.0dip" 
                    android:layout_marginBottom="2.0dip" 
                    android:text="Drag slide to arrange slide" />
                <com.example.positivityapp.views.DraggableGridView 
                    android:scrollbarStyle="insideOverlay" 
                    android:id="@+id/vgv" 
                    android:background="@drawable/bg_grid" 
                    android:visibility="gone" 
                    android:scrollbars="vertical" 
                    android:layout_width="fill_parent" 
                    android:layout_height="wrap_content" 
                    android:layout_marginTop="5.0dip" />
            </LinearLayout>
        </LinearLayout>

    </RelativeLayout>

我在错误日志中收到以下错误

日志

java.lang.ClassCastException: com.android.layoutlib.bridge.android.BridgeContext cannot be cast to android.app.Activity
    at com.example.positivityapp.views.DraggableGridView.<init>(DraggableGridView.java:103)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.instantiateClass(ProjectCallback.java:422)
    at com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.loadView(ProjectCallback.java:179)
    at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:207)
    at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:135)
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:755)
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:727)
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:758)
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:727)
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:758)
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:727)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:373)
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:399)
    at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:336)
    at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:334)
    at com.android.ide.eclipse.adt.internal.editors.layout.gle2.RenderService.createRenderSession(RenderService.java:451)
    at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge(GraphicalEditorPart.java:1545)
    at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.recomputeLayout(GraphicalEditorPart.java:1302)
    at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.activated(GraphicalEditorPart.java:1059)
    at com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditorDelegate.delegatePageChange(LayoutEditorDelegate.java:686)
    at com.android.ide.eclipse.adt.internal.editors.common.CommonXmlEditor.pageChange(CommonXmlEditor.java:360)
    at org.eclipse.ui.part.MultiPageEditorPart$2.widgetSelected(MultiPageEditorPart.java:292)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
    at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:774)
    at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:3028)
    at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1749)
    at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:278)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4169)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3758)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1053)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:942)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:86)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:588)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:543)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1414)

最佳答案

java.lang.ClassCastException: com.android.layoutlib.bridge.android.BridgeContext cannot be cast to android.app.Activity
at com.example.positivityapp.views.DraggableGridView.<init>(DraggableGridView.java:103)

这不是运行时错误,而是 IDE 图形布局编辑器中的异常。

基本上,DraggableGridView 似乎期望传递给它的 Context 是一个 Activity,而图形布局编辑器提供一个非 Activity 上下文正在编辑的组件。

如果出现运行时错误,您将在 logcat 中看到堆栈跟踪。对于这些设计时错误,要么修复自定义 View 组件,要么干脆不对包含此 View 的布局使用图形布局编辑器。

关于android - 我收到此错误。DraggableGridView 无法实例化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25502737/

相关文章:

gridview - 脚本完成时如何防止关闭 GridView

jQuery 可拖放与 Firefox 和 IE 的兼容性问题

android - 录音时的线程问题

android - 如何让重力 'bottom' 在 xml 中的可绘制对象上工作

c# - 特殊字符不显示在带有参数的 SQL 数据库的 gridview 中

c# - 以编程方式分配的 CheckChanged 事件不会触发 gridview 中的复选框控件

javascript - Raphael.draggable 不再适用于 Raphael

java - 在 Java 的 JTextArea 中区分拖动和选择

android - 如何在单选按钮旁边添加 View

android - Android真的没有wchar_t吗?