2011-07-26 14 views
1

3.0.iのドラッグアンドドロップを実装しようとしているすべてのmは、開発者サイトで与えられた例を通過しましたが、ドロップ中に問題に直面しています。ここで私のコードは、表示、しかしそれをドロップすることはできません。いずれかのPLZは、問題が何かを教えたり、サンプルコードを提供しますか?ドラッグアンドドロップ3.0

setContentView(R.layout.main); 
    iv=(ImageView)findViewById(R.id.iv); 
    lv=(RelativeLayout)findViewById(R.id.lv); 
    lv.setOnDragListener(this); 
    iv.setTag("HELLOOO"); 
    iv.setOnLongClickListener(this); 
} 
     public boolean onDrag(View v, DragEvent event) { 
    CharSequence dragData; 
    switch(event.getAction()){ 
    case DragEvent.ACTION_DRAG_STARTED: 
     break; 
    case DragEvent.ACTION_DRAG_ENTERED: 
     insideOfMe = true; 
     break; 
    case DragEvent.ACTION_DRAG_LOCATION: 
     break; 
    case DragEvent.ACTION_DRAG_ENDED: 
     break; 
    case DragEvent.ACTION_DRAG_EXITED: 
     insideOfMe = false; 
     break; 
    case DragEvent.ACTION_DROP: 
     break; 
    } 

    return true; 
} 
public static class Shadow extends View.DragShadowBuilder{ 
    Drawable d; 
    public Shadow(View v,Context context){ 
     super(v); 
    d=context.getResources().getDrawable(R.drawable.icon); 
    } 

    @Override 
    public void onProvideShadowMetrics(Point shadowSize, 
      Point shadowTouchPoint) { 
     // TODO Auto-generated method stub 
        int width,height; 
        width=getView().getWidth(); 
        height=getView().getHeight(); 
        d.setBounds(0,0,width,height); 
       shadowSize.set(width, height); 
       shadowTouchPoint.set(width/2, height/2); 
    } 
    public void onDrawShadow(Canvas canvas){ 
canvas.save(); 
d.draw(canvas); 
canvas.restore(); 
    } 
    } 
public boolean onLongClick(View v) { 
    ClipData.Item item = new ClipData.Item((CharSequence) v.getTag()); 
     ClipDescription NOTE_STREAM_TYPES = new ClipDescription((CharSequence)           

    v.getTag(),new String[] { ClipDescription.MIMETYPE_TEXT_PLAIN }); 
ClipData data = new ClipData(NOTE_STREAM_TYPES, item); 

    shadow=new Shadow(v,getApplicationContext()); 

    v.startDrag(data, shadow,null,0); 

    return false; 
} 

おかげ

答えて

1

はあなたが行うことができます。この場合DragEvent.ACTION_DROP

のための任意の機能を実装していない:

case DragEvent.ACTION_DROP: 
     if (insideOfMe) { 
      Item item = event.getClipData().getItemAt(0); 
      // Do whatever you want to do with the item 
     } 
+0

uはplzは私が何をすべきか私に言うことができるの???? – dharan

+0

私の答えを更新しました –

関連する問題