1

Android でビュー (イメージなど) をあるパネルから別のパネルにコピーするにはどうすればよいですか? 私が試した:

case DragEvent.ACTION_DROP:

                    View view = (View) event.getLocalState();
                    LinearLayout container = (LinearLayout) v;
                    container.addView(view);
                    break;

しかし、うまくいきません。
これは onDrag() 関数です。私のアプリは次のように終了しExceptionます:

    public boolean onDrag(View v, DragEvent event) {
        int action = event.getAction();
        switch (event.getAction()) {
            case DragEvent.ACTION_DRAG_STARTED:
                // Do nothing
                break;
            case DragEvent.ACTION_DRAG_ENTERED:
                v.setBackgroundDrawable(enterShape);
                break;
            case DragEvent.ACTION_DRAG_EXITED:
                v.setBackgroundDrawable(normalShape);
                break;
            case DragEvent.ACTION_DROP:
                // add view 
                View view = (View) event.getLocalState();
                LinearLayout container = (LinearLayout) v;
                container.addView(view);                    
                break;
            case DragEvent.ACTION_DRAG_ENDED:
                v.setBackgroundDrawable(normalShape);
            default:
                break;
        }
        return true;
    }
4

1 に答える 1

-2

おそらく、「指定された子にはすでに親があります」という java.lang.IllegalStateException が発生します。あなたがしなければならないことは追加することです

View view = (View) event.getLocalState();
ViewGroup owner = (ViewGroup) view.getParent();
owner.removeView(view);

アクションが DragEvent.ACTION_DROP の場合。

于 2013-08-01T09:41:21.463 に答える