Android 仅长单击从栅格视图中删除图标的可见性

Android 仅长单击从栅格视图中删除图标的可见性,android,gridview,nullpointerexception,ontouchlistener,onlongclicklistener,Android,Gridview,Nullpointerexception,Ontouchlistener,Onlongclicklistener,我目前是android编程的新手。 我在代码中使用网格视图时遇到了一个问题。 我的代码的目的是在网格视图中用另一个图标交换一个图标。 目前,我正在实现onlongclick方法来启动并拖动图标。 我在一列中有4个图标,它们来自一个数组。 触发onlongclick方法时,每个视图都将不可见。 但是,当我在第一个图标上尝试时,视图变得不可见,拖动方法没有启动。你能告诉我这部分哪里做错了吗。 这是错误日志 08-04 22:53:50.460: E/SpannableStringBuilder(25

我目前是android编程的新手。 我在代码中使用网格视图时遇到了一个问题。 我的代码的目的是在网格视图中用另一个图标交换一个图标。 目前,我正在实现onlongclick方法来启动并拖动图标。 我在一列中有4个图标,它们来自一个数组。 触发onlongclick方法时,每个视图都将不可见。 但是,当我在第一个图标上尝试时,视图变得不可见,拖动方法没有启动。你能告诉我这部分哪里做错了吗。 这是错误日志

08-04 22:53:50.460: E/SpannableStringBuilder(25556): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
08-04 22:53:50.460: E/SpannableStringBuilder(25556): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
08-04 22:53:51.990: E/View(25556): Unable to initiate drag
08-04 22:53:51.990: E/View(25556): java.lang.NullPointerException
08-04 22:53:51.990: E/View(25556):  at android.view.View.startDrag(View.java:16249)
08-04 22:53:51.990: E/View(25556):  at com.example.robotbehaviorui.CustomBehaviorActivity$MyLongClickListener.onItemLongClick(CustomBehaviorActivity.java:166)
08-04 22:53:51.990: E/View(25556):  at android.widget.AbsListView.performLongPress(AbsListView.java:3143)
08-04 22:53:51.990: E/View(25556):  at android.widget.AbsListView$CheckForLongPress.run(AbsListView.java:3093)
08-04 22:53:51.990: E/View(25556):  at android.os.Handler.handleCallback(Handler.java:615)
08-04 22:53:51.990: E/View(25556):  at android.os.Handler.dispatchMessage(Handler.java:92)
08-04 22:53:51.990: E/View(25556):  at android.os.Looper.loop(Looper.java:137)
08-04 22:53:51.990: E/View(25556):  at android.app.ActivityThread.main(ActivityThread.java:4898)
08-04 22:53:51.990: E/View(25556):  at java.lang.reflect.Method.invokeNative(Native Method)
08-04 22:53:51.990: E/View(25556):  at java.lang.reflect.Method.invoke(Method.java:511)
08-04 22:53:51.990: E/View(25556):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
08-04 22:53:51.990: E/View(25556):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
08-04 22:53:51.990: E/View(25556):  at dalvik.system.NativeStart.main(Native Method)
这是我唯一一个长按的听众

private final class MyLongClickListener implements AdapterView.OnItemLongClickListener{

@Override
public boolean onItemLongClick(AdapterView<?> arg0, View v,
        int arg2, long arg3) {
    try{
        Toast.makeText(CustomBehaviorActivity.this, "OnLongClick:  "+(CharSequence) v.getTag(), Toast.LENGTH_SHORT).show();
        ClipData data = ClipData.newPlainText("", "");
        DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(v);
        v.startDrag(data, shadowBuilder, v, 0);
        v.setVisibility(v.INVISIBLE); 

        System.out.println("INDEX: "+ conditionsPanel.indexOfChild(v));
        System.out.println("SIZE: "+ conditionsList.size());
        System.out.println("COUNT: "+ conditionsAdapter.getCount());
        //pop up remove area
        deleteView.setVisibility(deleteView.VISIBLE);

    }catch(NullPointerException npe){
        System.out.println("NullPointerException: "+npe.getMessage());
    }catch(Exception exe){
        System.out.println("NullPointerException: "+exe.getMessage());
    }
    return true;
}
私有最终类MyLongClickListener实现AdapterView.OnItemLongClickListener{
@凌驾
长单击(AdapterView arg0,视图v,
整数arg2,长arg3){
试一试{
Toast.makeText(CustomBehaviorActivity.this,“OnLongClick:”+(CharSequence)v.getTag(),Toast.LENGTH_SHORT.show();
ClipData data=ClipData.newPlainText(“,”);
DragShadowBuilder shadowBuilder=新视图。DragShadowBuilder(v);
v、 startDrag(数据,阴影生成器,v,0);
v、 设置可见性(v.不可见);
System.out.println(“索引:+conditionsPanel.indexOfChild(v));
System.out.println(“SIZE:+conditionsList.SIZE());
System.out.println(“COUNT:+conditionsAdapter.getCount());
//弹出删除区域
deleteView.setVisibility(deleteView.VISIBLE);
}捕获(NullPointerException npe){
System.out.println(“NullPointerException:+npe.getMessage());
}捕获(异常exe){
System.out.println(“NullPointerException:+exe.getMessage());
}
返回true;
}

}

我遇到了完全相同的问题…尚未找到解决方案。